{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 资本资产定价模型\n",
    "\n",
    "资产定价模型（Asset Pricing Models）主要是用来计算资产（如股票、债券或其他投资工具）的预期收益率或者说是必要的收益率（Required Return）。在金融市场中，投资者根据资产的风险和预期收益来决定他们愿意支付的价格。\n",
    "\n",
    "资产定价模型的目标是计算资产的预期收益率,主要有以下几个重要原因:\n",
    "\n",
    "1. 投资决策依据\n",
    "\n",
    "投资者在做出投资决策时,需要对资产的潜在收益有一个合理的预期,作为参考依据。计算出资产的预期收益率,可以与其当前价格相比较,判断是高估或低估,从而做出买入、持有或卖出的决策。\n",
    "\n",
    "2. 机会成本参考\n",
    "\n",
    "投资者在权衡不同资产时,需要将其预期收益与其他备选投资的预期收益率相比较。资产的预期收益率就是这种机会成本的一个重要参考。\n",
    "\n",
    "3. 定价合理性评估\n",
    "\n",
    "通过计算出资产的理论预期收益率,可以将其与市场实际收益率进行对比,评估资产是否被正确定价,从而发现被高估或低估的投资标的。\n",
    "\n",
    "4. 成本资本估计\n",
    "\n",
    "企业需要估计资本的预期收益率,作为评估投资项目、并购等决策时所需的折现率(成本资本)参考。\n",
    "\n",
    "5. 风险与收益匹配\n",
    "\n",
    "资产定价模型通过估计资产对应的风险暴露程度,从而计算出合理的预期收益率,体现了风险收益匹配的原则。\n",
    "\n",
    "6. 绩效评估基准\n",
    "\n",
    "将实际投资组合的收益率与其理论预期收益率对比,可以评估基金经理的选股能力和投资组合的相对表现。\n",
    "\n",
    "总的来说,资产的预期收益率是投资决策、资产定价、资本成本和绩效评估等诸多金融决策的重要参考和出发点。因此,资产定价模型旨在为不同资产合理、精准地预计其预期收益率,是资产定价理论的核心目标。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## CAPM\n",
    "\n",
    "在20世纪60年代，三位学者Sharpe（1964），Lintner（1965），Mossin（1966）在Markowitz模型框架下不约而同推导除了奠定现代投资学的经典模型：资本资产定价模型（Capital asset pricing model，CAPM）。三位学者经过严格的推导都得出以下结论：对于任意的资产组合，其收益率 满足以下关系式：\n",
    "\n",
    "$$ E(R_q)-R_f=\\beta_{qm}[E(R_m)-R_f] $$\n",
    "\n",
    "该公式被称为传统的CAPM应模型，\n",
    "其中:\n",
    "- $E(R_q)$ 是证券q的预期收益率\n",
    "- $R_f$ 是无风险利率\n",
    "- $\\beta_{qm}$ 是证券q的系统风险系数,反映其对市场投资组合的敏感程度\n",
    "$$ \\beta_{qm}=\\frac{\\sigma(R_q,R_m)}{\\sigma^2(R_m)} $$\n",
    "为投资组合q的beta值，其中分母为资产组合收益率与市场投资组合收益率的协方差， \n",
    "分子为市场投资组合的方差，beta贝塔值反映出资产组合q的系统性风险；如果拟采用大盘指数来计算Rm，那么系统性风险那就是大盘的涨跌。\n",
    "- $E(R_m)$ 是市场投资组合的预期收益率，该组合是市场上所有风险资产的组合，包括股票等金融资产，也包括黄金等实物资产，在现实中构建这样的投资组合时不大可能实现的，因此在实务中常常以大盘指数来替代市场投资组合，\n",
    "- $[E(R_m) - R_f]$ 是市场风险溢酬，为风险投资组合q比无风险利率高出的期望收益率，高出来的部分是因为投资人在持有风险组合q时，承担了更多的风险\n",
    "\n",
    "CAPM中的投资组合q可以是任意投资组合，也可以是单只股票，单只股票我们用小写i表示，那么就可以得到单只股票的CAPM公式\n",
    "$$ E(R_q)=R_f+\\beta_{qm}[E(R_m)-R_f] $$\n",
    "\n",
    "\n",
    "其中的$\\beta_{qm}$可以反映出单个资产的系统风险水平，若等于1，则资产i的价格和市场投资组合的价格波动性是一样的。如果小于1，则资产i的价格波动程度小于市场投资组合的；若大于1，则资产i的波动性更大。值为正就说明资产i的价格和市场投资组合价格变动同方向，反之则相反变动。\n",
    "\n",
    "CAPM模型说明，单只股票的期望收益是无风险收益加上系统性风险溢价，非系统性风险可以通过分散化投资消除，所以没有对应的风险溢价。\n",
    "\n",
    "* CAPM背后的核心思想是平衡风险和收益。\n",
    "具体来说:\n",
    "\n",
    "1. 投资者追求高收益,但也规避风险。CAPM认为,投资者只关注投资组合整体的预期收益和风险(标准差)。\n",
    "\n",
    "2. 存在风险溢酬率。无风险投资只能获得无风险利率,如果投资者承担了额外的系统风险(不可分散风险),就应该获得相应的风险补偿,即风险溢酬率。\n",
    "\n",
    "3. 只有系统风险才应获得补偿。通过分散投资可以消除非系统风险,因此CAPM认为,只有无法通过分散化而规避的系统风险(β值),才应该获得风险溢酬作为补偿。\n",
    "\n",
    "4. 高风险对应高收益。承担较高的系统风险(β值较大),应该获得较高的预期收益率,以补偿所承担的高风险。\n",
    "\n",
    "5. 证券市场线(SML)。CAPM通过证券市场线刻画了预期收益与β值之间的线性关系,为资产定价提供理论基础。\n",
    "\n",
    "\n",
    "\n",
    "尽管存在缺陷,CAPM作为最早的资产定价模型,其基本思路对后来的资产定价理论产生了深远影响,奠定了风险收益权衡的核心框架。许多后续模型如Fama-French三因子、AP模型等,都是在CAPM基础上发展而来。\n",
    "\n",
    "CAPM公式中个股和大盘的收益率都是期望值，Jenson（1968）在研究共同基金表现时将CAPM模型写成如下形式：\n",
    "\n",
    "$$ E(R_{it})-R_{ft}=\\alpha_i+\\beta_{i}[E(R_{mt})-R_{ft}]+\\varepsilon_{it} $$\n",
    "\n",
    "进行实证分析，$ R_{it},R_{ft},R_{mt}$\n",
    " 对应的是个股i、无风险资产（通常是银行存款、国债）、市场指数（大盘指数）的收益率之时间序列资料，对这些资料进行线性回归分析，得到未知参数alpha和beta的估计值 \n",
    " 。式子中的alpha是由Jenson引入的，所以又被称为Jenson's Alpha。根据CAPM模型之假设， \n",
    " $ R_{it}$是服从正态分布的随机数，这样就可以判断 alpha和beta\n",
    " 之统计显著性。 \n",
    " 可以解释个股过去的收益率与风险之间的关系， \n",
    " 表示收益率胜过大盘的部分，通常也用来衡量基金经理的绩效。现在所有的投资者在做的事情都可以用一句话来概括，就是试图运用各种方法创造显著的正阿尔法。这些方法包括：基本面分析，消息面分析，技术面分析和阿尔法策略。\n",
    "\n",
    "阿尔法策略的重点在于通过构建投资组合对冲掉系统风险，锁定alpha超额收益。若在有卖空机制的市场，对冲投资组合比较好构建。首先明确整个投资组合的资金，然后确定出具有较高alpha收益的、需要最多的证券组合和具有市场指数特征、用来对冲掉系统风险的、需要做空的证券组合，其次分配好资金的比重，最终获得稳定的Alpha收益率。另外也可以用证券和股指期货结合进行操作，比如投资者预测出未来会跑赢大盘的证券，则可以在证券市场将其买入，同时在期货市场卖空股指期货合约，以对冲系统性风险，这样市场的涨跌不会影响到投资组合的收益率。\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import akshare as ak\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt \n",
    "import statsmodels.api as sm\n",
    "\n",
    "import sqlite3\n",
    "import pandas as pd  \n",
    "import datetime"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### classwork1 capm模型的python实现\n",
    "\n",
    "* 获取数据SHSE.000902（中证流通指数）与SHSE.600596（新安股份）的数据在2014-01-01到2014-12-31之间的数据\n",
    "\n",
    "* 由于数据缺失，通过pd.merge基于时间连接数据，并计算对应的Rq Rm Rf，然后做出Rm-Rf 与Rq-Rf的散点图，另外无风险利率为一年期的国债利率，其年化为3.6%\n",
    "\n",
    "* 通过sm.OLS函数进行线性拟合，并画出拟合结果"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### akshare 指数历史行情数据\n",
    "https://zhuanlan.zhihu.com/p/609079456\n",
    "\n",
    "接口: index_zh_a_hist\n",
    "\n",
    "目标地址: http://quote.eastmoney.com/center/hszs.html\n",
    "\n",
    "描述: 东方财富网-中国股票指数-行情数据\n",
    "\n",
    "限量: 单次返回具体指数指定 period 从 start_date 到 end_date 的之间的近期数据\n",
    "\n",
    "输入参数\n",
    "\n",
    "名称\t类型\t描述\n",
    "\n",
    "symbol\tstr\tsymbol=\"399282\"; 指数代码，此处不用市场标识\n",
    "\n",
    "period\tstr\tperiod=\"daily\"; choice of {'daily', 'weekly', 'monthly'}\n",
    "\n",
    "start_date\tstr\tstart_date=\"19700101\"; 开始日期\n",
    "\n",
    "end_date\tstr\tend_date=\"22220101\"; 结束时间\n",
    "\n",
    "* 重要代码\n",
    "\n",
    "fillna(method=\"ffill\")\n",
    "\n",
    "pd.merge\n",
    "\n",
    "sm.OLS\n",
    "\n",
    "sm.add_constant\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "stock_xinan=ak.stock_zh_a_hist(symbol=\"600596\", period=\"daily\", start_date=\"20140101\", end_date='20141231', \n",
    "                     adjust=\"hfq\")[[\"日期\",\"收盘\"]]\n",
    "index_zh = ak.index_zh_a_hist(symbol=\"000902\", period=\"daily\", start_date=\"20140101\", \n",
    "                                        end_date='20141231')[[\"日期\",\"收盘\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>日期</th>\n",
       "      <th>收盘_x</th>\n",
       "      <th>收盘_y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2014-01-02</td>\n",
       "      <td>3028.75</td>\n",
       "      <td>74.63</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2014-01-03</td>\n",
       "      <td>3001.46</td>\n",
       "      <td>73.98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2014-01-06</td>\n",
       "      <td>2927.48</td>\n",
       "      <td>69.58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2014-01-07</td>\n",
       "      <td>2938.60</td>\n",
       "      <td>69.63</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2014-01-08</td>\n",
       "      <td>2950.73</td>\n",
       "      <td>69.34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>240</th>\n",
       "      <td>2014-12-25</td>\n",
       "      <td>4308.49</td>\n",
       "      <td>74.63</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>241</th>\n",
       "      <td>2014-12-26</td>\n",
       "      <td>4396.30</td>\n",
       "      <td>74.86</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>242</th>\n",
       "      <td>2014-12-29</td>\n",
       "      <td>4370.19</td>\n",
       "      <td>73.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>243</th>\n",
       "      <td>2014-12-30</td>\n",
       "      <td>4334.98</td>\n",
       "      <td>72.16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>244</th>\n",
       "      <td>2014-12-31</td>\n",
       "      <td>4403.62</td>\n",
       "      <td>72.51</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>245 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             日期     收盘_x   收盘_y\n",
       "0    2014-01-02  3028.75  74.63\n",
       "1    2014-01-03  3001.46  73.98\n",
       "2    2014-01-06  2927.48  69.58\n",
       "3    2014-01-07  2938.60  69.63\n",
       "4    2014-01-08  2950.73  69.34\n",
       "..          ...      ...    ...\n",
       "240  2014-12-25  4308.49  74.63\n",
       "241  2014-12-26  4396.30  74.86\n",
       "242  2014-12-29  4370.19  73.10\n",
       "243  2014-12-30  4334.98  72.16\n",
       "244  2014-12-31  4403.62  72.51\n",
       "\n",
       "[245 rows x 3 columns]"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_xi_zh=pd.merge(index_zh,stock_xinan,on=\"日期\",how=\"left\").fillna(method=\"ffill\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "Ri=(stock_xi_zh[\"收盘_y\"]/stock_xi_zh[\"收盘_y\"].shift(1)-1).dropna()\n",
    "Rm=(stock_xi_zh[\"收盘_x\"]/stock_xi_zh[\"收盘_x\"].shift(1)-1).dropna()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "Rf=(0.036+1)**(1/360)-1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1     -0.008808\n",
       "2     -0.059574\n",
       "3      0.000620\n",
       "4     -0.004263\n",
       "5     -0.015385\n",
       "         ...   \n",
       "240   -0.000098\n",
       "241    0.002984\n",
       "242   -0.023609\n",
       "243   -0.012957\n",
       "244    0.004752\n",
       "Name: 收盘_y, Length: 244, dtype: float64"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Ri-Rf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1a26c005060>]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(Rm-Rf,Ri-Rf,\"o\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                   收盘_y   R-squared:                       0.241\n",
      "Model:                            OLS   Adj. R-squared:                  0.238\n",
      "Method:                 Least Squares   F-statistic:                     76.82\n",
      "Date:                Fri, 22 Mar 2024   Prob (F-statistic):           3.36e-16\n",
      "Time:                        14:23:00   Log-Likelihood:                 623.10\n",
      "No. Observations:                 244   AIC:                            -1242.\n",
      "Df Residuals:                     242   BIC:                            -1235.\n",
      "Df Model:                           1                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const         -0.0014      0.001     -1.156      0.249      -0.004       0.001\n",
      "收盘_x           0.9527      0.109      8.765      0.000       0.739       1.167\n",
      "==============================================================================\n",
      "Omnibus:                       47.677   Durbin-Watson:                   1.989\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              231.048\n",
      "Skew:                           0.646   Prob(JB):                     6.74e-51\n",
      "Kurtosis:                       7.589   Cond. No.                         89.8\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "model=sm.OLS(Ri-Rf,sm.add_constant(Rm-Rf))\n",
    "result=model.fit()\n",
    "print(result.summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<caption>OLS Regression Results</caption>\n",
       "<tr>\n",
       "  <th>Dep. Variable:</th>          <td>xinan</td>      <th>  R-squared:         </th> <td>   0.241</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Model:</th>                   <td>OLS</td>       <th>  Adj. R-squared:    </th> <td>   0.238</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Method:</th>             <td>Least Squares</td>  <th>  F-statistic:       </th> <td>   76.82</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Date:</th>             <td>Thu, 21 Mar 2024</td> <th>  Prob (F-statistic):</th> <td>3.36e-16</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Time:</th>                 <td>20:43:48</td>     <th>  Log-Likelihood:    </th> <td>  623.10</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>No. Observations:</th>      <td>   244</td>      <th>  AIC:               </th> <td>  -1242.</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Residuals:</th>          <td>   242</td>      <th>  BIC:               </th> <td>  -1235.</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Model:</th>              <td>     1</td>      <th>                     </th>     <td> </td>   \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Covariance Type:</th>      <td>nonrobust</td>    <th>                     </th>     <td> </td>   \n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "     <td></td>       <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>const</th>  <td>   -0.0014</td> <td>    0.001</td> <td>   -1.161</td> <td> 0.247</td> <td>   -0.004</td> <td>    0.001</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>zhongz</th> <td>    0.9527</td> <td>    0.109</td> <td>    8.765</td> <td> 0.000</td> <td>    0.739</td> <td>    1.167</td>\n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "  <th>Omnibus:</th>       <td>47.677</td> <th>  Durbin-Watson:     </th> <td>   1.989</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Prob(Omnibus):</th> <td> 0.000</td> <th>  Jarque-Bera (JB):  </th> <td> 231.048</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Skew:</th>          <td> 0.646</td> <th>  Prob(JB):          </th> <td>6.74e-51</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Kurtosis:</th>      <td> 7.589</td> <th>  Cond. No.          </th> <td>    89.8</td>\n",
       "</tr>\n",
       "</table><br/><br/>Notes:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified."
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.summary.Summary'>\n",
       "\"\"\"\n",
       "                            OLS Regression Results                            \n",
       "==============================================================================\n",
       "Dep. Variable:                  xinan   R-squared:                       0.241\n",
       "Model:                            OLS   Adj. R-squared:                  0.238\n",
       "Method:                 Least Squares   F-statistic:                     76.82\n",
       "Date:                Thu, 21 Mar 2024   Prob (F-statistic):           3.36e-16\n",
       "Time:                        20:43:48   Log-Likelihood:                 623.10\n",
       "No. Observations:                 244   AIC:                            -1242.\n",
       "Df Residuals:                     242   BIC:                            -1235.\n",
       "Df Model:                           1                                         \n",
       "Covariance Type:            nonrobust                                         \n",
       "==============================================================================\n",
       "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
       "------------------------------------------------------------------------------\n",
       "const         -0.0014      0.001     -1.161      0.247      -0.004       0.001\n",
       "zhongz         0.9527      0.109      8.765      0.000       0.739       1.167\n",
       "==============================================================================\n",
       "Omnibus:                       47.677   Durbin-Watson:                   1.989\n",
       "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              231.048\n",
       "Skew:                           0.646   Prob(JB):                     6.74e-51\n",
       "Kurtosis:                       7.589   Cond. No.                         89.8\n",
       "==============================================================================\n",
       "\n",
       "Notes:\n",
       "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
       "\"\"\""
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "x=np.arange(-0.04,0.035,0.005)\n",
    "y=-0.0014+0.9527*x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1a26c274610>]"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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LIYgIg+sNgELNlV43BkdaN4Z3WrjzjNERJGIIYjIg7Lqcy49QI4EADX1V1FWfS50F0VERLJhCCLygDujExFFN4YgIg86JSf4PsmP84iISF0Ygog84M7oRETRjSGIyAPujE5EFN0Ygoi84M7oRETRi4slEvnAndGJiKITQxCRBNwZnYgo+nA4jIiIiGISQxARERHFJIYgIiIiikkMQURERBSTGIKIiIgoJjEEERERUUxiCCIiIqKYxBBEREREMYkhiIiIiGISQxARERHFJIYgIiIiikkMQURERBSTGIKIiIgoJjEEERERUUxiCCIiIqKYxBBEREREMYkhiIiIiGISQxARERHFJIYgIiIiikkMQURERBSTFA1B58+fx7Rp02AwGGAwGDBt2jRcuHDB63MEQcD8+fPRuXNntG3bFiNHjsShQ4fsjx87dgwajcbt19///nf7ed26dXN5fM6cOUo1lYiIiCKMoiHo3nvvRXl5OUpKSlBSUoLy8nJMmzbN63OWLl2KF154AcuXL8eePXtgNBoxevRoXLx4EQCQmZmJmpoap68FCxYgKSkJY8eOdXqtZ555xum83/3ud4q1lYiIiCJLG6VeuLKyEiUlJdi1axfy8/MBAKtXr0ZhYSEOHz6Mm2++2eU5giBg2bJleOqpp3DXXXcBAN544w2kp6dj3bp1ePDBB6HT6WA0Gp2et2HDBtxzzz1o166d0/Hk5GSXc4mIiIgABXuCTCYTDAaDPQABQEFBAQwGA3bu3On2OdXV1TCbzRgzZoz9mF6vx4gRIzw+Z+/evSgvL8cvf/lLl8eWLFmCDh06YMCAAfj973+PxsZGj9fb0NAAi8Xi9EVERETRS7GeILPZjE6dOrkc79SpE8xms8fnAEB6errT8fT0dBw/ftztc9asWYM+ffpg6NChTscfe+wxDBo0CKmpqSgrK8PcuXNRXV2NP//5z25fZ/HixViwYIHPdhEREVF08LsnaP78+R4Lk8WvL774AgCg0Whcni8Igtvjjlo/7uk5V65cwbp169z2As2aNQsjRoxA//798atf/QqrVq3CmjVrUFdX5/Y9586di/r6evvXyZMnvV4jERERRTa/e4IeeeQRTJkyxes53bp1w1dffYUzZ864PPbdd9+59PSIxPods9mMjIwM+/GzZ8+6fc4//vEPXL58GT/96U99XndBQQEA4OjRo+jQoYPL43q9Hnq93ufrEBERUXTwOwSlpaUhLS3N53mFhYWor69HWVkZhgwZAgDYvXs36uvrXYauRNnZ2TAajSgtLcXAgQMBAI2Njdi+fTuWLFnicv6aNWswYcIEdOzY0ef17N+/HwCcwhURERHFLsVqgvr06YOioiJMnz4dr7zyCgDggQcewJ133uk0M6x3795YvHgxJk+eDI1Gg5kzZ2LRokXo1asXevXqhUWLFiExMRH33nuv0+sfPXoUn376KTZv3uzy3iaTCbt27cJtt90Gg8GAPXv2YNasWZgwYQK6du2qVJOJiIgogigWggDgrbfewqOPPmqf7TVhwgQsX77c6ZzDhw+jvr7e/v0TTzyBK1eu4OGHH8b58+eRn5+PLVu2IDk52el5r732Grp06eI0k0yk1+vxzjvvYMGCBWhoaEBWVhamT5+OJ554QoFWEhERUSTSCIIghPsi1MhiscBgMKC+vh4pKSnhvhwiIiKSwJ/7N/cOIyIiopjEEEREREQxiSGIiIiIYhJDEBEREcUkhiAiIiKKSQxBREREFJMYgoiIiCgmMQQRERFRTGIIIiIiopjEEEREREQxSdG9w4iISFlWm4Cy6nM4e/EqOiUnYEh2e+i0mnBfFlFEYAgiIopQJQdrsGBTBWrqr9qPZRgSMG98DopyM8J4ZUSRgcNhREQRqORgDR5au88pAAGAuf4qHlq7DyUHa8J0ZUSRgyGIiCjCWG0CFmyqgODmMfHYgk0VsNrcnUFEIoYgIqIIU1Z9zqUHyJEAoKb+Ksqqz4XuoogiEEMQEVGEOXvRcwAK5DyiWMUQREQUYTolJ8h6HlGsYggiIoowQ7LbI8OQAE8T4TVoniU2JLt9KC+LKOIwBBERRRidVoN543MAwCUIid/PG5/D9YKIfGAIIiKKQEW5GVh5/yAYDc5DXkZDAlbeP4jrBBFJwMUSiYgiVFFuBkbnGLliNFGAGIKIiCKYTqtBYY8O4b4MoojE4TAiIiKKSQxBREREFJMYgoiIiCgmMQQRERFRTGIIIiIiopjEEEREREQxiSGIiIiIYhJDEBEREcUkhiAiIiKKSVwx2gNBEAAAFoslzFdCREREUon3bfE+7g1DkAcXL14EAGRmZob5SoiIiMhfFy9ehMFg8HqORpASlWKQzWbD6dOnkZycDI0mcjYjtFgsyMzMxMmTJ5GSkhLuy1EE2xgd2MbowDZGh2hqoyAIuHjxIjp37gyt1nvVD3uCPNBqtbjxxhvDfRkBS0lJifhfZF/YxujANkYHtjE6REsbffUAiVgYTURERDGJIYiIiIhiEkNQlNHr9Zg3bx70en24L0UxbGN0YBujA9sYHWKhje6wMJqIiIhiEnuCiIiIKCYxBBEREVFMYggiIiKimMQQRERERDGJISjCnD9/HtOmTYPBYIDBYMC0adNw4cIFr88RBAHz589H586d0bZtW4wcORKHDh3yeO7YsWOh0Wjw/vvvy98ACZRq44MPPogePXqgbdu26NixIyZOnIivv/5awZZ4pkQbz507h1//+te4+eabkZiYiK5du+LRRx9FfX29wq1xT6l/x1dffRUjR45ESkoKNBqNz9eU08svv4zs7GwkJCQgLy8Pn332mdfzt2/fjry8PCQkJKB79+5YtWqVyznvvvsucnJyoNfrkZOTgw0bNih1+ZLI3cZDhw7h7rvvRrdu3aDRaLBs2TIFr14audu4evVqDB8+HKmpqUhNTcWoUaNQVlamZBMkkbud7733HgYPHowbbrgBSUlJGDBgAP76178q2QTlCRRRioqKhNzcXGHnzp3Czp07hdzcXOHOO+/0+pznnntOSE5OFt59913hwIEDwj333CNkZGQIFovF5dwXXnhBGDt2rABA2LBhg0Kt8E6pNr7yyivC9u3bherqamHv3r3C+PHjhczMTOHatWtKN8mFEm08cOCAcNdddwkbN24Ujh49Knz00UdCr169hLvvvjsUTXKh1L/jH//4R2Hx4sXC4sWLBQDC+fPnFW5Js7fffluIi4sTVq9eLVRUVAiPPfaYkJSUJBw/ftzt+d98842QmJgoPPbYY0JFRYWwevVqIS4uTvjHP/5hP2fnzp2CTqcTFi1aJFRWVgqLFi0S2rRpI+zatSskbWpNiTaWlZUJjz/+uLB+/XrBaDQKf/zjH0PUGveUaOO9994rrFixQti/f79QWVkp/PznPxcMBoPw7bffhqpZLpRo57Zt24T33ntPqKioEI4ePSosW7ZM0Ol0QklJSaiaJTuGoAhSUVEhAHD6A2kymQQAwtdff+32OTabTTAajcJzzz1nP3b16lXBYDAIq1atcjq3vLxcuPHGG4WampqwhSCl2+joyy+/FAAIR48ela8BEoSyjX/729+E+Ph4oampSb4G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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(Rm-Rf,Ri-Rf,\"o\")\n",
    "plt.plot(x,y,\"-\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "#ak.stock_zh_index_daily(symbol=\"sz399552\")\n",
    "#![sm1.png](sm2.png) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 回归分析参数意义\n",
    "\n",
    "<img style=\"float: left;\" src=\"sm1.png\" >\n",
    "<img style=\"float: left;\" src=\"sm2.png\" >\n",
    "<img style=\"float: left;\" src=\"sm3.png\" >\n",
    "<img style=\"float: left;\" src=\"sm4.png\" >"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### CAPM的应用与局限\n",
    "\n",
    "* CAPM也存在一些局限性:\n",
    "\n",
    "1. 模型假设过于理想化。\n",
    "\n",
    "2. 模型难以精确估计参数,如市场组合、无风险利率和β系数的测算存在困难。\n",
    "\n",
    "3. 只考虑系统风险,忽视了其他影响证券收益的因素,如公司规模、账面市值比等。\n",
    "\n",
    "4. 实证研究发现,β值无法很好解释收益率的差异,低β股票往往表现优于高β股票。\n",
    "\n",
    "5. 难以精确定义和测量\"市场组合\",通常使用较窄的指数代替。\n",
    "\n",
    "* CAPM的主要应用:\n",
    "\n",
    "1. 资产定价\n",
    "CAPM为资产定价提供了理论基础。通过估计证券的$\\beta$值,可以计算出其理论预期收益率,判断是否被高估或低估。\n",
    "\n",
    "2. 资本成本估计  \n",
    "公司可利用CAPM估计自身的加权平均资本成本,作为投资项目评估和决策的依据。\n",
    "\n",
    "3. 投资组合管理\n",
    "CAPM为优化投资组合的风险收益特征提供了方法,投资者可构建具有最优$\\beta$值的投资组合。\n",
    "\n",
    "4. 绩效评估\n",
    "CAPM为基金经理和投资组合的绩效评估提供了方法,通过估计$\\alpha$值(超额收益)来评判选股能力。\n",
    "\n",
    "5. 企业并购\n",
    "并购时需要对标的公司估值,CAPM可以用于估计目标公司的成本资本率。\n",
    "\n",
    "CAPM模型简单直观,在实践中广泛应用,但也存在一些缺陷和局限性。尽管如此,作为经典的资产定价理论,CAPM对现代金融理论的发展贡献卓著。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### classwork 2 CAPM模型在实际投资中应用的例子\n",
    "\n",
    "假设当前无风险利率为3%,市场投资组合的预期收益率为10%。一位基金经理管理着一个股票投资组合,该组合包含以下4只股票:\n",
    "\n",
    "股票代码|beta值|权重\n",
    "-------|------|-----\n",
    "A       |1.2   |30%\n",
    "B       |0.8   |20%  \n",
    "C       |1.5   |40%\n",
    "D       |1.0   |10%\n",
    "\n",
    "1. 计算该投资组合的预期收益率。\n",
    "\n",
    "2. 如果该投资组合去年实际年化收益率为13%,请计算基金经理的alpha值(选股能力)。\n",
    "\n",
    "3. 假设基金经理现在希望将投资组合的beta值控制在1.2以下,请调整各股票的权重。\n",
    "\n",
    "4. 公司D正在考虑一项投资项目,估计该项目的beta系数为1.2,请为该项目估算出适当的资本成本(也叫折现率,有效市场下,对于任何风险资产,它的预期收益率必须等于其资本成本率）。\n",
    "\n",
    "通过这个例题,我们综合体现了CAPM中alpha、beta指标在投资组合收益预测、基金经理绩效评估、投资组合优化以及公司资本成本估计等方面的应用。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.2200000000000002"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "1.2*0.3+0.8*0.2+1.5*0.4+1*0.1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.1154"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "1.22*(0.1-0.03)+0.03"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.014600000000000002"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "0.13-0.1154"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.114"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "1.2*(0.1-0.03)+0.03"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## capm的横截面回归代码实现以及证券特征线(SCL)与证券市场线(SML)\n",
    "\n",
    "\n",
    "在资本资产定价模型(CAPM)中,横截面回归(Cross-Sectional Regression)的具体实施方法和主要作用如下:\n",
    "\n",
    "1. 实施方法:\n",
    "\n",
    "横截面回归通常包括两个阶段的回归:\n",
    "\n",
    "第一阶段回归(Time-Series Regression):\n",
    "对于每一只股票 $i$,使用历史数据进行时间序列回归,估计其相对于市场组合的 beta 系数 $\\beta_i$:\n",
    "\n",
    "$$R_{it} - R_{ft} = \\alpha_i + \\beta_i(R_{mt} - R_{ft}) + \\epsilon_{it}$$\n",
    "\n",
    "其中 $R_{it}$ 为 $t$ 时点股票 $i$ 的收益率,$R_{ft}$ 为无风险利率,$R_{mt}$ 为市场组合收益率,$\\epsilon_{it}$ 为残差项。\n",
    "\n",
    "第二阶段横截面回归(Cross-Sectional Regression):\n",
    "将第一阶段估计得到的 beta 系数作为自变量,实证收益率作为因变量,进行横截面回归:\n",
    "\n",
    "$$R_i - R_f = \\gamma_0 + \\gamma_1\\beta_i + \\mu_i$$\n",
    "\n",
    "其中 $R_i$ 为股票 $i$ 的实际收益率,$R_f$ 为无风险利率,$\\beta_i$ 为股票 $i$ 的 beta 系数,$\\mu_i$ 为残差项。\n",
    "\n",
    "2. 主要作用:\n",
    "\n",
    "(1) 检验 CAPM 理论的适用性。根据 CAPM 理论,如果市场是有效的,那么 $\\gamma_0$ 应该等于 $0$,$\\gamma_1$ 应该等于市场风险溢价 $[E(R_m) - R_f]$。\n",
    "\n",
    "(2) 估计市场风险溢价 $[E(R_m) - R_f]$ 的水平,即投资者为承担市场风险所要求的补偿。\n",
    "\n",
    "(3) 评估单个证券是否被高估或低估。如果某证券的实际收益率明显高于或低于其基于 CAPM 计算的理论预期收益率,则可能被认为是被高估或低估。\n",
    "\n",
    "(4) 研究其他因素对收益率的影响。可以在横截面回归模型中加入其他解释变量(如公司规模、账面市值比等),检验 CAPM 的局限性,探索收益率的其他影响因素。\n",
    "\n",
    "需要注意的是,横截面回归存在一些争议和批评,如数据挖掘偏误(Data Mining Bias)、模型设定等问题,需要谨慎分析结果。但总体而言,它仍然是检验资产定价模型、研究收益率影响因素的重要工具。\n",
    "\n",
    "**证券特征线(Security Characteristic Line, SCL)和证券市场线(Security Market Line, SML)** 都是资本资产定价模型(CAPM)中非常重要的概念,它们分别具有以下意义和应用价值:\n",
    "\n",
    "1. 证券特征线(SCL):\n",
    "   - 意义: 证券特征线表示单只证券在给定风险水平(beta系数)下的预期收益率。它将证券的预期收益率与其系统风险(beta)关联起来。\n",
    "   - 应用价值:\n",
    "     a) 评估证券是否被正确定价。理论上,证券应该位于其证券特征线上,如果偏离过多,可能意味着被高估或低估。\n",
    "     b) 作为投资决策的参考。投资者可以根据证券相对于其特征线的位置,判断其估值水平,做出买入、持有或卖出的决策。\n",
    "     c) 对投资组合进行优化。投资组合管理人员可以利用证券特征线评估组合中单只证券的预期收益率和风险水平。\n",
    "\n",
    "2. 证券市场线(SML):\n",
    "   - 意义: 证券市场线表示在给定的风险水平下,所有证券的理论预期收益率。它反映了全市场证券收益率与系统风险之间的\"均衡\"关系。\n",
    "   - 应用价值:\n",
    "     a) 评判CAPM模型的适用性。通过实证分析,检验证券是否真正位于证券市场线上,从而验证CAPM模型的解释力。\n",
    "     b) 确定资产的合理定价。如果某证券明显偏离证券市场线,可能被认为是被高估或低估,需要重新定价。\n",
    "     c) 确定投资组合中各资产的合理权重。投资组合理论认为,投资组合应该位于证券市场线上以获得最优的风险收益比。\n",
    "\n",
    "总的来说,证券特征线关注单只证券,而证券市场线关注整个证券市场。它们共同构成了CAPM理论框架的重要组成部分,为投资者和金融从业人员提供了分析和决策的重要依据。通过对这两条线的实证研究,可以检验CAPM模型的有效性,并指导资产定价和投资组合管理实践。\n",
    "\n",
    "https://blog.csdn.net/weixin_56069388/article/details/127955693\n",
    "\n",
    "https://zhuanlan.zhihu.com/p/40984029"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 此数据来自淘宝\n",
    "conn=sqlite3.connect(r'I:\\量化金融\\stock_2018.db')\n",
    "#获取数据库中的表"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>交易日期</th>\n",
       "      <th>股票代码</th>\n",
       "      <th>收盘价</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20200102</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>4832.2947</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>20200103</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>4756.6046</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>20200106</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>4676.4621</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>20200107</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>4713.5651</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>20200108</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>4701.6922</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       交易日期       股票代码        收盘价\n",
       "0  20200102  000002.SZ  4832.2947\n",
       "1  20200103  000002.SZ  4756.6046\n",
       "2  20200106  000002.SZ  4676.4621\n",
       "3  20200107  000002.SZ  4713.5651\n",
       "4  20200108  000002.SZ  4701.6922"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_daily0=pd.read_sql(\"select 交易日期,股票代码,收盘价 from stock_daily where 交易日期>'20200101' and 交易日期<'20210101' \",con=conn)\n",
    "stock_daily0.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "stock_drn=stock_daily0.pivot(index=\"交易日期\",columns=\"股票代码\",values=\"收盘价\").dropna(axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "243"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(stock_drn)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "stock_drn_r=(stock_drn/stock_drn.shift(10)-1).dropna()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "stock_index=stock_drn_r.mean(axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "交易日期\n",
       "20200116    0.033311\n",
       "20200117    0.022876\n",
       "20200120    0.025965\n",
       "20200121    0.001164\n",
       "20200122    0.017091\n",
       "              ...   \n",
       "20201225   -0.020516\n",
       "20201228   -0.039739\n",
       "20201229   -0.040162\n",
       "20201230   -0.023423\n",
       "20201231   -0.018705\n",
       "Length: 233, dtype: float64"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "Rf=0.03*10/243"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "交易日期\n",
       "20200116   -0.032009\n",
       "20200117   -0.045984\n",
       "20200120   -0.036321\n",
       "20200121   -0.067055\n",
       "20200122   -0.034214\n",
       "              ...   \n",
       "20201225   -0.025918\n",
       "20201228   -0.001589\n",
       "20201229    0.022946\n",
       "20201230    0.009995\n",
       "20201231    0.020580\n",
       "Name: 000001.SZ, Length: 233, dtype: float64"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_drn_r[\"000001.SZ\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['000001.SZ', '000002.SZ', '000004.SZ', '000005.SZ', '000006.SZ',\n",
       "       '000007.SZ', '000008.SZ', '000009.SZ', '000011.SZ', '000012.SZ',\n",
       "       ...\n",
       "       '300800.SZ', '300801.SZ', '300803.SZ', '300805.SZ', '300806.SZ',\n",
       "       '300807.SZ', '300808.SZ', '300809.SZ', '300810.SZ', '300811.SZ'],\n",
       "      dtype='object', name='股票代码', length=1918)"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_drn_r.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "beta=[]\n",
    "alpha=[]\n",
    "for i in stock_drn_r.columns:\n",
    "    model=sm.OLS(stock_drn_r[i]-Rf,sm.add_constant(stock_index-Rf)).fit()\n",
    "    beta.append(model.params[0])\n",
    "    alpha.append(model.params[\"const\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 证券特征线(SCL):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "beta[0]\n",
    "alpha[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "x=np.arange(-0.2,0.2,0.005)\n",
    "y=alpha[0]+beta[0]*x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x22e19486380>]"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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xoYNG4wbbrjBSEpKMtasWRPx6zOMwK/RMAxjw4YNxoYNG4whQ4YYEydONDZs2GB89tln9T+3++doGP6v0e6f4/PPP28kJSUZjzzyiNdWC6H8HBW8NFBWVmZce+21Rvv27Y327dsb1157rbF3795G5wDG008/bRjG0bJaT3+WLVtW/5xDhw4ZU6dONTIyMow2bdoYF110kbF9+/bIXVgDgV6jYZglfJ6ucdasWYZhGMb27duNs846y8jIyDBSUlKMPn36GLfccotRVlYWuQtrIBzXaBj2/xxdLpcxa9YsIysry0hNTTXOOuss49NPP63/eSx8jo888ojRs2dPIyUlxRg8eLCxfPny+p/95Cc/Mc4+++xG57/33nvGqaeeaqSkpBi9evUyFixY0Ow1X3rpJaNfv35GcnKy0b9/f+OVV14J92X4FOprnDZtmtGjRw8jJSXFOPbYY42xY8caq1atisSleBXoNXr6u9ezZ89G59j9c/R3jXb/HM8++2yP1/iTn/yk0WuG6nN0GMaR7C8RERERG4j7nBcRERGJLwpeRERExFYUvIiIiIitKHgRERERW1HwIiIiIrai4EVERERsRcGLiIiI2IqCFxEREbEVBS8iIiJiKwpeRERExFYUvIiIiIitKHgRERERW/n/7Kg8xxtoH6kAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(stock_index.values-Rf,stock_drn_r['000001.SZ'].values-Rf,\"o\")\n",
    "plt.plot(x,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x22e19113e20>]"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAGdCAYAAAAfTAk2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABut0lEQVR4nO3deXxU1fnH8c9MVkAyLIEEFCEiIhFUFoGAuFUWFcUVEIjVWhQVFbA/FZUK2oraWtwRrUoVBFyggiIaxLoGUSAqSxERRDERCZBAgCwz9/fHdGKWWe5smSXf9+uVVzs3d+49dyZyn3vOc55jMQzDQERERCSOWCPdABEREZFQU4AjIiIicUcBjoiIiMQdBTgiIiISdxTgiIiISNxRgCMiIiJxRwGOiIiIxB0FOCIiIhJ3EiPdgEhwOBz8/PPPNG/eHIvFEunmiIiIiAmGYXDgwAHat2+P1eq9j6ZRBjg///wzHTp0iHQzREREJAA//vgjxxxzjNd9GmWA07x5c8D5AaWlpUW4NSIiImJGaWkpHTp0qL6Pe9MoAxzXsFRaWpoCHBERkRhjJr2kQZKMn376abKyskhNTaV37958/PHHHvddvHgxgwcPpk2bNqSlpZGTk8O7775bb7833niD7OxsUlJSyM7OZsmSJeG8BBEREYkhYQ9wFi1axKRJk7j77rtZv349gwYN4rzzzmPnzp1u9//oo48YPHgwy5cvZ+3atZx99tlceOGFrF+/vnqf/Px8Ro0aRW5uLl999RW5ubmMHDmSzz//PNyXIyIiIjHAYhiGEc4T9OvXj169ejF79uzqbd26dePiiy9m5syZpo5x0kknMWrUKP785z8DMGrUKEpLS3nnnXeq9xk2bBgtW7ZkwYIFPo9XWlqKzWajpKREQ1QiIiIxwp/7d1h7cCoqKli7di1DhgyptX3IkCF89tlnpo7hcDg4cOAArVq1qt6Wn59f75hDhw71eMzy8nJKS0tr/YiIiEj8CmuAs2fPHux2OxkZGbW2Z2RkUFRUZOoYjzzyCGVlZYwcObJ6W1FRkV/HnDlzJjabrfpHU8RFRETiW4MkGdfNdjYMw1QG9IIFC5g+fTqLFi2ibdu2AR9z6tSplJSUVP/8+OOPfl6BiIiIxJKwThNPT08nISGhXs/K7t276/XA1LVo0SKuvfZaXnvtNc4999xav8vMzPTrmCkpKaSkpARwBSIiIhKLwtqDk5ycTO/evcnLy6u1PS8vjwEDBnh834IFC7j66qt55ZVXuOCCC+r9Picnp94x33vvPa/HFBERkcYj7IX+pkyZQm5uLn369CEnJ4dnn32WnTt3MmHCBMA5fLRr1y5eeuklwBncXHXVVTz22GP079+/uqemSZMm2Gw2AG699VbOOOMMHnroIUaMGMGbb77JypUr+eSTT8J9OSIiEmfsDoM12/ey+8AR2jZPpW9WKxKsWqcw1oU9wBk1ahTFxcXcd999FBYW0r17d5YvX07Hjh0BKCwsrFUTZ86cOVRVVXHTTTdx0003VW///e9/z9y5cwEYMGAACxcu5J577mHatGl07tyZRYsW0a9fv3BfjoiIxJEVGwqZsWwThSVHqre1s6Vy74XZDOveLoItk2CFvQ5ONFIdHBERWbGhkBvmraPuTdDVdzN7XC8FOVEmaurgiIiIRCO7w2DGsk31ghugetuMZZuwOxpdH0DcUIAjIiKNzprte2sNS9VlAIUlR1izfW/DNUpCSgGOiIg0OrsPeA5uAtlPoo8CHBERaXTaNk8N6X4SfRTgiIhIo9M3qxXtbKl4mgxuwTmbqm9WKw97SLRTgCMiIo1OgtXCvRdmA9QLclyv770wW/VwYpgCHBERaZSGdW/H7HG9yLTVHobKtKVqingcCHuhPxERkWg1rHs7BmdnqpJxHFKAIyIijVqC1UJO59aRboaEmIaoREREJO4owBEREZG4owBHRERE4o4CHBEREYk7CnBEREQk7ijAERERkbijAEdERETijgIcERERiTsKcERERCTuKMARERGRuKMAR0REROKOAhwRERGJOwpwREREJO5oNXEREYlpdofBmu172X3gCG2bp9I3qxUJVkukmyURpgBHRERi1ooNhcxYtonCkiPV29rZUrn3wmyGdW8XwZZJpGmISkREYtKKDYXcMG9dreAGoKjkCDfMW8eKDYURaplEAwU4IiISc+wOgxnLNmG4+Z1r24xlm7A73O0Rxcr2RLoFcUMBjoiIxJw12/fW67mpyQAKS46wZvvehmtUMBwO+PBheOxU+GVjpFsTF5SDIyIiMWf3Ac/BTSD7RdSRElhyA2x52/l681uQcVJk2xQHFOCIiHihGTrRqW3z1JDuFzG7/wuLxkLxd5CQAhc8Ar1yI92quKAAR0TEA83QiV59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ErwwzBnctD4e/vi+ghsRERETwloHZ/78+fTo0YMhQ4YwZMgQTj75ZF5++eVa+2zZsoWSkpLq10uXLqVnz55ccMEFAIwePZqePXvyzDPPAJCcnMz777/P0KFD6dq1K7fccgtDhgxh5cqVJCTEyZBNVTksm+RMJrZXQNcLYPwqaHtipFsmIiISEyyGYRiRbkRDKy0txWazUVJSQlpaWqSbU1vpz7AoF3Z9CVjgnLvh9NvAGtZYVEREJOr5c//WWlTRZMcnzmTisl8htQVc9jx0OTfSrRIREYk5CnCigWHA6tnw3j1g2CGjO4yaB62yIt0yERGRmKQAJ9IqymDZrfDNa87XPa6ACx+H5KaRbZeIiEgMU4ATSXu/d+bb/LIBLAkw9AHod71WARcREQmSApxI2ZoHb1wLR0qgWRu44l/QKc6muYuIiESIApyG5nDAx3+HDx4ADDi6D4x8CWxHR7plIiIicUMBTkM6UgJLJsCW5c7Xva+B8x6CxBitsiwiIhKlFOA0lN2bYeFY2LsNEpLhgkeg11WRbpWIiEhcUoDTEAwD3pzoDG7SjoZRL8PRvSPdKhERkbil8rgNwWKBS+bAicPhug8V3IiIiISZenAaSvrxMHp+pFshIiLSKKgHR0REROKOAhwRERGJOwpwREREJO4owBEREZG4owBHRERE4o4CHBEREYk7CnBEREQk7ijAERERkbijAEdERETijgIcERERiTsKcERERCTuKMARERGRuKMAR0REROJOo1xN3DAMAEpLSyPcEhERETHLdd923ce9aZQBzoEDBwDo0KFDhFsiIiIi/jpw4AA2m83rPhbDTBgUZxwOBz///DPNmzfHYrE0yDlLS0vp0KEDP/74I2lpaQ1yTvFM30d00fcRXfR9RA99F7UZhsGBAwdo3749Vqv3LJtG2YNjtVo55phjInLutLQ0/ZFGEX0f0UXfR3TR9xE99F38xlfPjYuSjEVERCTuKMARERGRuKMAp4GkpKRw7733kpKSEummCPo+oo2+j+ii7yN66LsIXKNMMhYREZH4ph4cERERiTsKcERERCTuKMARERGRuKMAR0REROKOApww2rdvH7m5udhsNmw2G7m5uezfv9/j/pWVldxxxx306NGDZs2a0b59e6666ip+/vnnhmt0HPP3+wBYvHgxQ4cOJT09HYvFQkFBQYO0NR49/fTTZGVlkZqaSu/evfn444+97v/hhx/Su3dvUlNTOe6443jmmWcaqKXxz5/vorCwkDFjxtC1a1esViuTJk1quIY2Ev58H4sXL2bw4MG0adOGtLQ0cnJyePfddxuwtbFDAU4YjRkzhoKCAlasWMGKFSsoKCggNzfX4/6HDh1i3bp1TJs2jXXr1rF48WK+/fZbLrroogZsdfzy9/sAKCsrY+DAgTz44IMN1Mr4tGjRIiZNmsTdd9/N+vXrGTRoEOeddx47d+50u//27ds5//zzGTRoEOvXr+euu+7illtu4Y033mjglscff7+L8vJy2rRpw913380pp5zSwK2Nf/5+Hx999BGDBw9m+fLlrF27lrPPPpsLL7yQ9evXN3DLY4AhYbFp0yYDMFavXl29LT8/3wCM//73v6aPs2bNGgMwfvjhh3A0s9EI9vvYvn27ARjr168PYyvjV9++fY0JEybU2nbiiScad955p9v9b7/9duPEE0+ste366683+vfvH7Y2Nhb+fhc1nXnmmcatt94appY1TsF8Hy7Z2dnGjBkzQt20mKcenDDJz8/HZrPRr1+/6m39+/fHZrPx2WefmT5OSUkJFouFFi1ahKGVjUeovg/xX0VFBWvXrmXIkCG1tg8ZMsTjZ5+fn19v/6FDh/Lll19SWVkZtrbGu0C+CwmfUHwfDoeDAwcO0KpVq3A0MaYpwAmToqIi2rZtW29727ZtKSoqMnWMI0eOcOeddzJmzBgtshakUHwfEpg9e/Zgt9vJyMiotT0jI8PjZ19UVOR2/6qqKvbs2RO2tsa7QL4LCZ9QfB+PPPIIZWVljBw5MhxNjGkKcPw0ffp0LBaL158vv/wSAIvFUu/9hmG43V5XZWUlo0ePxuFw8PTTT4f8OuJFQ30fEry6n7Ovz97d/u62i//8/S4kvAL9PhYsWMD06dNZtGiR2we4xi4x0g2INRMnTmT06NFe9+nUqRNff/01v/zyS73f/frrr/Wi9boqKysZOXIk27dvZ9WqVeq98aIhvg8JTnp6OgkJCfWeSHfv3u3xs8/MzHS7f2JiIq1btw5bW+NdIN+FhE8w38eiRYu49tpree211zj33HPD2cyYpQDHT+np6aSnp/vcLycnh5KSEtasWUPfvn0B+PzzzykpKWHAgAEe3+cKbrZu3coHH3ygf8x9CPf3IcFLTk6md+/e5OXlcckll1Rvz8vLY8SIEW7fk5OTw7Jly2pte++99+jTpw9JSUlhbW88C+S7kPAJ9PtYsGABf/jDH1iwYAEXXHBBQzQ1NkUywzneDRs2zDj55JON/Px8Iz8/3+jRo4cxfPjwWvt07drVWLx4sWEYhlFZWWlcdNFFxjHHHGMUFBQYhYWF1T/l5eWRuIS44u/3YRiGUVxcbKxfv954++23DcBYuHChsX79eqOwsLChmx/TFi5caCQlJRnPP/+8sWnTJmPSpElGs2bNjB07dhiGYRh33nmnkZubW73/999/bzRt2tSYPHmysWnTJuP55583kpKSjNdffz1SlxA3/P0uDMMw1q9fb6xfv97o3bu3MWbMGGP9+vXGxo0bI9H8uOPv9/HKK68YiYmJxlNPPVXrHrF///5IXULUUoATRsXFxcbYsWON5s2bG82bNzfGjh1r7Nu3r9Y+gPHiiy8ahvHbVGR3Px988EGDtz/e+Pt9GIZhvPjii26/j3vvvbdB2x4PnnrqKaNjx45GcnKy0atXL+PDDz+s/t3vf/9748wzz6y1/3/+8x+jZ8+eRnJystGpUydj9uzZDdzi+OXvd+Huv4GOHTs2bKPjmD/fx5lnnun2+/j973/f8A2PchbD+F/mnoiIiEic0CwqERERiTsKcERERCTuKMARERGRuKMAR0REROKOAhwRERGJOwpwREREJO4owBEREZG4owBHRERE4o4CHBEREYk7CnBEREQk7ijAERERkbijAEdERETizv8D/ux6I5g+H8kAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(stock_drn_r['000001.SZ'].values-Rf,stock_index.values-Rf,\"o\")\n",
    "plt.plot(x,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.001033990074986041, -0.007292563731446214, -0.0017647444433177535]"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "alpha"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:              000001.SZ   R-squared:                       0.308\n",
      "Model:                            OLS   Adj. R-squared:                  0.305\n",
      "Method:                 Least Squares   F-statistic:                     102.6\n",
      "Date:                Fri, 29 Mar 2024   Prob (F-statistic):           3.43e-20\n",
      "Time:                        13:59:32   Log-Likelihood:                 317.25\n",
      "No. Observations:                 233   AIC:                            -630.5\n",
      "Df Residuals:                     231   BIC:                            -623.6\n",
      "Df Model:                           1                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.0010      0.004      0.251      0.802      -0.007       0.009\n",
      "0              0.8341      0.082     10.129      0.000       0.672       0.996\n",
      "==============================================================================\n",
      "Omnibus:                       11.686   Durbin-Watson:                   0.225\n",
      "Prob(Omnibus):                  0.003   Jarque-Bera (JB):               12.577\n",
      "Skew:                           0.568   Prob(JB):                      0.00186\n",
      "Kurtosis:                       2.918   Cond. No.                         20.2\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "model=sm.OLS(stock_drn_r[\"000001.SZ\"]-Rf,sm.add_constant(stock_index-Rf)).fit()\n",
    "print(model.summary())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* capm的横截面回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.00751542, -0.00124385,  0.01128645, ..., -0.01351092,\n",
       "       -0.02387653,  0.00792235])"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_drn_r.mean().values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.001\n",
      "Model:                            OLS   Adj. R-squared:                  0.000\n",
      "Method:                 Least Squares   F-statistic:                     1.175\n",
      "Date:                Fri, 29 Mar 2024   Prob (F-statistic):              0.278\n",
      "Time:                        14:13:40   Log-Likelihood:                 5070.1\n",
      "No. Observations:                1918   AIC:                        -1.014e+04\n",
      "Df Residuals:                    1916   BIC:                        -1.013e+04\n",
      "Df Model:                           1                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.0052      0.001      4.825      0.000       0.003       0.007\n",
      "x1             0.0011      0.001      1.084      0.278      -0.001       0.003\n",
      "==============================================================================\n",
      "Omnibus:                      336.898   Durbin-Watson:                   1.942\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              706.441\n",
      "Skew:                           1.021   Prob(JB):                    3.96e-154\n",
      "Kurtosis:                       5.161   Cond. No.                         5.31\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "model=sm.OLS(stock_drn_r.mean().values-Rf,sm.add_constant(beta)).fit()\n",
    "print(model.summary())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 证券市场线(SML)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "x=np.arange(-1,4,0.005)\n",
    "y=0.0052+0.0011*x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x22e193f7940>]"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkEAAAGdCAYAAAAVEKdkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABi7ElEQVR4nO3de3wTZdo//k96DC1taCk0BaFUQKUWQYq0BfGAUEBEQHcXcGV9dt0qKqvA7oqI/ABRuqjfFX0QFB5cl0UK+6zLAo9YKYtyLHIsWssqYqEIidgWEqD0QJrfH2VCDpNkJsnk+Hm/Xnkp08nMJJTMlfu+7utSmc1mM4iIiIgiTFSgL4CIiIgoEBgEERERUURiEEREREQRiUEQERERRSQGQURERBSRGAQRERFRRGIQRERERBGJQRARERFFpJhAX0Cwam1txdmzZ5GUlASVShXoyyEiIiIJzGYzLl68iC5duiAqyvVYD4MgJ86ePYtu3boF+jKIiIjIA6dPn8YNN9zgch8GQU4kJSUBaHsTk5OTA3w1REREJIXRaES3bt0s93FXGAQ5IUyBJScnMwgiIiIKMVJSWZgYTURERBGJQRARERFFJAZBREREFJEYBBEREVFE8ksQtGzZMmRlZUGtViM3Nxe7du1yuq9Op8MjjzyCm2++GVFRUZg+fbrDPitXrsTQoUORkpKClJQUDB8+HPv377fZZ/78+VCpVDYPrVbr65dGREREIUrxIGj9+vWYPn065syZgyNHjmDo0KEYPXo0ampqRPdvampCp06dMGfOHPTr1090n88//xyTJ0/GZ599hvLycnTv3h2FhYU4c+aMzX633nordDqd5fHVV1/5/PURERFRaFKZzWazkifIy8vDgAEDsHz5csu2Pn36YPz48SguLnb53HvuuQf9+/fHkiVLXO5nMpmQkpKCpUuX4le/+hWAtpGgf/3rX6ioqPDouo1GIzQaDQwGA5fIExERhQg5929FR4Kam5tx6NAhFBYW2mwvLCzE3r17fXaehoYGtLS0IDU11Wb78ePH0aVLF2RlZWHSpEn4/vvvnR6jqakJRqPR5kFEREThS9EgqLa2FiaTCenp6Tbb09PTodfrfXaeF154AV27dsXw4cMt2/Ly8rB69Wp8+umnWLlyJfR6PQYPHoy6ujrRYxQXF0Oj0VgebJlBkcrUakb5iTpsrDiD8hN1MLUqOlhMRBQwfqkYbV+10Ww2+6wp6WuvvYaSkhJ8/vnnUKvVlu2jR4+2/H/fvn1RUFCAnj174q9//StmzpzpcJzZs2fbbBfKbhNFktJKHRZsroLO0GjZlqFRY97YbIzKyQjglRER+Z6iI0FpaWmIjo52GPU5d+6cw+iQJ9544w0sWrQIW7duxW233eZy38TERPTt2xfHjx8X/Xl8fLylRQZbZVAkKq3U4ak1h20CIADQGxrx1JrDKK3UBejKiIiUoWgQFBcXh9zcXJSVldlsLysrw+DBg7069uuvv46FCxeitLQUAwcOdLt/U1MTjh07howMfpslsmdqNWPB5iqITXwJ2xZsruLUGBGFFcWnw2bOnIkpU6Zg4MCBKCgowIoVK1BTU4OpU6cCaJuGOnPmDFavXm15jrCi69KlS/jpp59QUVGBuLg4ZGdnA2ibAps7dy7Wrl2LHj16WEaa2rdvj/bt2wMA/vCHP2Ds2LHo3r07zp07h1deeQVGoxGPPfaY0i+ZKOTsr653GAGyZgagMzRif3U9Cnp29N+FEREpSPEgaOLEiairq8PLL78MnU6HnJwcbNmyBZmZmQDaiiPa1wy6/fbbLf9/6NAhrF27FpmZmTh58iSAtuKLzc3N+NnPfmbzvHnz5mH+/PkAgB9++AGTJ09GbW0tOnXqhPz8fOzbt89yXiK67txF5wGQJ/sREYUCxesEhSrWCaJIUn6iDpNX7nO7X0lRPkeCiCioBU2dICIKDYOyUpGhUcPZmk0V2laJDcpKdbIHEVHoYRBERIiOUmHe2LacO/tASPjzvLHZiI7yTWkLIqJgwCCIiAAAo3IysPzRAdBq1DbbtRo1lj86gHWCiCjs+KVYIhGFhlE5GRiRrcX+6nqcu9iIzkltU2AcASKicMQgiIhsREepmPxMRBGB02FEREQUkRgEERERUURiEEREREQRiUEQERERRSQGQURERBSRGAQRERFRRGIQRERERBGJQRARERFFJAZBREREFJEYBBEREVFEYhBEREREEYlBEBEREUUkBkFEREQUkRgEERERUURiEEREREQRiUEQERERRSQGQURERBSRGAQRERFRRGIQRERERBGJQRARERFFJAZBREREFJEYBBEREVFEYhBEREREEYlBEBEREUUkBkFEREQUkRgEERERUURiEEREREQRiUEQERERRSQG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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(beta,stock_drn_r.mean().values-Rf,\"o\")\n",
    "plt.plot(x,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 股市中常见因子及其获取\n",
    "\n",
    "1. **换手率(%)**:\n",
    "   - 定义：换手率是衡量在一定时间段内股票或证券市场上股票转手买卖的频率，它反映了股票流通性的强弱。\n",
    "   - 公式：\n",
    "   $$ 换手率 (\\%) = \\frac{一段时间内的成交量}{流通股本} \\times 100\\% $$\n",
    "\n",
    "2. **量比**:\n",
    "   - 定义：量比是指当日开盘后平均每分钟的成交量与过去五个交易日平均每分钟成交量之比，用来判断当天交易量相对近期常态的增减情况。\n",
    "   - 公式：\n",
    "   $$ 量比 = \\frac{今日开盘后平均每分钟成交量}{过去五日平均每分钟成交量} $$\n",
    "\n",
    "3. **市盈率(静态)**:\n",
    "   - 定义：静态市盈率是股票市场价格与该公司最近一个完整会计年度每股收益（EPS）的比值，用于衡量投资回收期。\n",
    "   - 公式：\n",
    "   $$ 静态市盈率 = \\frac{股价}{每股收益_{上年度}} $$\n",
    "\n",
    "4. **市盈率(TTM)**:\n",
    "   - 定义：滚动市盈率（Trailing Twelve Months, TTM）是股票市场价格与最近四个季度（通常是过去一年）每股收益的简单平均值的比值，更及时地反映了当前的盈利能力。\n",
    "   - 公式：\n",
    "   $$ 市盈率(TTM) = \\frac{股价}{每股收益_{TTM}} $$\n",
    "\n",
    "5. **市盈率(动态)**:\n",
    "   - 定义：动态市盈率是基于对未来预期盈利增长的调整，计算方式可能包括使用预计的未来每股收益和现时股价进行计算，或者通过静态市盈率除以某个增长率的指数幂得到。\n",
    "   - 公式：\n",
    "   $$ 动态市盈率 = \\frac{股价}{预期的未来每股收益} $$\n",
    "   或者按照之前提到的一种计算方式：\n",
    "   $$ 动态市盈率 = \\frac{静态市盈率}{(1 + 年复合增长率)^N} $$\n",
    "\n",
    "6. **市净率**:\n",
    "   - 定义：市净率是股票市场价格与每股净资产（BVPS，即每股账面价值）的比率，体现了市场对每股净资产的定价。\n",
    "   - 公式：\n",
    "   $$ 市净率 = \\frac{股价}{每股净资产} $$\n",
    "\n",
    "7. **市销率**:\n",
    "   - 定义：市销率是股票市场价格与每股营业收入（或公司总营业收入除以总股本）的比率，体现的是市场对公司每单位销售收入的估值。\n",
    "   - 公式：\n",
    "   $$ 市销率 = \\frac{股价}{每股营业收入} $$ \n",
    "   或者 \n",
    "   $$ 市销率 = \\frac{总市值}{总收入} $$\n",
    "\n",
    "8. **市销率(TTM)**:\n",
    "   - 定义：滚动市销率（TTM）类似于滚动市盈率，它是股票市场价格与最近四个季度（通常是一年）营业收入的简单平均值的比值。\n",
    "   - 公式：\n",
    "    $$ 市销率(TTM) = \\frac{总市值}{最近四个季度营业收入_{TTM}} $$\n",
    "\n",
    "9. **股息率(%)**:\n",
    "   - 定义：股息率是股票过去一年每股分红金额与当前股价的比例，显示投资股票所获得的现金分红回报。\n",
    "   - 公式：\n",
    "   $$ 股息率(\\%) = \\frac{每股年度分红}{股价} \\times 100\\% $$\n",
    "\n",
    "10. **股息率(TTM)(%)**:\n",
    "    - 定义：滚动股息率（TTM）类似，它基于最近四个季度的总分红与当前股价计算，反映近一年的平均股息收益率。\n",
    "    - 公式：\n",
    "    $$ 股息率(TTM)(\\%) = \\frac{最近四个季度总分红}{股价} \\times 100\\% $$\n",
    "\n",
    "11. **总股本(万股)**:\n",
    "    - 定义：总股本是指公司发行的所有普通股的数量，不考虑限制流通的部分。\n",
    "\n",
    "12. **流通股本(万股)**:\n",
    "    - 定义：流通股本是指公司股票中能够在公开市场上自由买卖的那部分股份数量。\n",
    "\n",
    "13. **总市值(万元)**:\n",
    "    - 定义：总市值是公司所有已发行股票按当前市场价格计算的总价值。\n",
    "    - 公式：\n",
    "    $$ 总市值(万元) = 总股本(万股) \\times 当前股价 $$\n",
    "\n",
    "14. **流通市值(万元)**:\n",
    "    - 定义：流通市值是公司股票中能够自由交易的那部分股份按当前市场价格计算的总价值。\n",
    "    - 公式：\n",
    "    $$ 流通市值(万元) = 流通股本(万股) \\times 当前股价 $$ \n",
    "\n",
    "请注意，以上公式中的“当前股价”指的是分析时点上的股票市场价格。同时，不同国家和地区以及不同的金融数据服务商可能会在计算细节上有所差异。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 这些金融量化概念的归类以及它们在投资决策中的参考价值：\n",
    "\n",
    "1. **流动性指标**：\n",
    "   - **换手率(%)**：反映股票的活跃程度和流动性，较高的换手率意味着股票交易活跃，买卖容易，但过高也可能预示着市场情绪过热或投机气氛浓厚。\n",
    "   - **量比**：对比当前交易量与历史平均水平，有助于识别交易异常放大或缩小的情况，常被用来判断短期趋势的强度和持续性。\n",
    "\n",
    "2. **估值比率**：\n",
    "   - **市盈率(静态/TTM/动态)**：衡量投资者愿意为每一元净利润付出的价格，数值越高，理论上投资回收期越长，风险越大。较低的市盈率可能表明股票被低估，而较高的市盈率则可能代表市场对其未来增长有较高期待。\n",
    "   - **市净率**：比较股票价格与每股净资产的关系，用于评估资产价值是否被高估或低估，尤其是在重资产行业，如银行业和地产行业。\n",
    "   - **市销率及市销率(TTM)**：反映市场对每单位销售收入的估值，适用于利润不稳定或亏损但收入增长稳定的公司，例如科技创业公司。\n",
    "\n",
    "3. **收益质量及分红能力**：\n",
    "   - **股息率(%)及股息率(TTM)(%)**：衡量公司分红水平，是收益型投资者的重要参考指标，高股息率通常代表公司经营稳健且注重股东回报。\n",
    "\n",
    "4. **规模与流动性信息**：\n",
    "   - **总股本(万股)**、**流通股本(万股)**：揭示公司总体规模及市场中可交易股份的大小，影响股票的流通性和交易活跃度。\n",
    "   - **总市值(万元)**、**流通市值(万元)**：分别衡量公司全部股份和流通股份的市场价值，对于投资组合构建、市场权重分配等具有重要意义，同时也在一定程度上反映公司规模和影响力。\n",
    "\n",
    "综上所述，这些量化指标在投资过程中扮演了重要角色，帮助投资者从不同维度评估股票的投资价值、风险状况和市场表现，以便做出更为科学合理的投资决策。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数据源及其指标调取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('xjllb',), ('zcfzb',), ('lrb',), ('cwzbsj',), ('stock_daily',)]"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 此数据来自淘宝\n",
    "conn=sqlite3.connect(r'I:\\量化金融\\stock_2018.db')\n",
    "#获取数据库中的表\n",
    "c = conn.cursor()\n",
    "c.execute(\"select name from sqlite_master where type='table'\")\n",
    "tab_name=c.fetchall()\n",
    "tab_name"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>交易日期</th>\n",
       "      <th>股票代码</th>\n",
       "      <th>股票简称</th>\n",
       "      <th>开盘价</th>\n",
       "      <th>最高价</th>\n",
       "      <th>最低价</th>\n",
       "      <th>收盘价</th>\n",
       "      <th>成交量(手)</th>\n",
       "      <th>成交额(千元)</th>\n",
       "      <th>...</th>\n",
       "      <th>市盈率(动态)</th>\n",
       "      <th>市净率</th>\n",
       "      <th>市销率</th>\n",
       "      <th>市销率(TTM)</th>\n",
       "      <th>股息率(%)</th>\n",
       "      <th>股息率(TTM)(%)</th>\n",
       "      <th>总股本(万股)</th>\n",
       "      <th>流通股本(万股)</th>\n",
       "      <th>总市值(万元)</th>\n",
       "      <th>流通市值(万元)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6807</td>\n",
       "      <td>20200102</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>万科A</td>\n",
       "      <td>4867.9136</td>\n",
       "      <td>4986.6432</td>\n",
       "      <td>4824.8741</td>\n",
       "      <td>4832.2947</td>\n",
       "      <td>1012130.40</td>\n",
       "      <td>3342373.870</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.2000</td>\n",
       "      <td>1.2362</td>\n",
       "      <td>1.0649</td>\n",
       "      <td>3.2098</td>\n",
       "      <td>3.2098</td>\n",
       "      <td>1.130214e+06</td>\n",
       "      <td>971517.0043</td>\n",
       "      <td>3.679978e+07</td>\n",
       "      <td>3.163259e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>6808</td>\n",
       "      <td>20200103</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>万科A</td>\n",
       "      <td>4854.5565</td>\n",
       "      <td>4869.3977</td>\n",
       "      <td>4716.5334</td>\n",
       "      <td>4756.6046</td>\n",
       "      <td>805536.29</td>\n",
       "      <td>2584309.903</td>\n",
       "      <td>...</td>\n",
       "      <td>14.89</td>\n",
       "      <td>2.1655</td>\n",
       "      <td>1.2169</td>\n",
       "      <td>1.0482</td>\n",
       "      <td>3.2608</td>\n",
       "      <td>3.2608</td>\n",
       "      <td>1.130214e+06</td>\n",
       "      <td>971517.0043</td>\n",
       "      <td>3.622337e+07</td>\n",
       "      <td>3.113712e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>6809</td>\n",
       "      <td>20200106</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>万科A</td>\n",
       "      <td>4712.0810</td>\n",
       "      <td>4713.5651</td>\n",
       "      <td>4637.8750</td>\n",
       "      <td>4676.4621</td>\n",
       "      <td>876840.58</td>\n",
       "      <td>2761448.649</td>\n",
       "      <td>...</td>\n",
       "      <td>14.64</td>\n",
       "      <td>2.1290</td>\n",
       "      <td>1.1964</td>\n",
       "      <td>1.0306</td>\n",
       "      <td>3.3167</td>\n",
       "      <td>3.3167</td>\n",
       "      <td>1.130214e+06</td>\n",
       "      <td>971517.0043</td>\n",
       "      <td>3.561305e+07</td>\n",
       "      <td>3.061250e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>6810</td>\n",
       "      <td>20200107</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>万科A</td>\n",
       "      <td>4691.3033</td>\n",
       "      <td>4738.7952</td>\n",
       "      <td>4652.7162</td>\n",
       "      <td>4713.5651</td>\n",
       "      <td>577933.43</td>\n",
       "      <td>1827510.871</td>\n",
       "      <td>...</td>\n",
       "      <td>14.76</td>\n",
       "      <td>2.1459</td>\n",
       "      <td>1.2058</td>\n",
       "      <td>1.0387</td>\n",
       "      <td>3.2906</td>\n",
       "      <td>3.2906</td>\n",
       "      <td>1.130214e+06</td>\n",
       "      <td>971517.0043</td>\n",
       "      <td>3.589561e+07</td>\n",
       "      <td>3.085538e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6811</td>\n",
       "      <td>20200108</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>万科A</td>\n",
       "      <td>4645.2956</td>\n",
       "      <td>4715.0492</td>\n",
       "      <td>4608.1926</td>\n",
       "      <td>4701.6922</td>\n",
       "      <td>529996.84</td>\n",
       "      <td>1667143.803</td>\n",
       "      <td>...</td>\n",
       "      <td>14.72</td>\n",
       "      <td>2.1405</td>\n",
       "      <td>1.2028</td>\n",
       "      <td>1.0361</td>\n",
       "      <td>3.2989</td>\n",
       "      <td>3.2989</td>\n",
       "      <td>1.130214e+06</td>\n",
       "      <td>971517.0043</td>\n",
       "      <td>3.580519e+07</td>\n",
       "      <td>3.077766e+07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 24 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   index      交易日期       股票代码 股票简称        开盘价        最高价        最低价  \\\n",
       "0   6807  20200102  000002.SZ  万科A  4867.9136  4986.6432  4824.8741   \n",
       "1   6808  20200103  000002.SZ  万科A  4854.5565  4869.3977  4716.5334   \n",
       "2   6809  20200106  000002.SZ  万科A  4712.0810  4713.5651  4637.8750   \n",
       "3   6810  20200107  000002.SZ  万科A  4691.3033  4738.7952  4652.7162   \n",
       "4   6811  20200108  000002.SZ  万科A  4645.2956  4715.0492  4608.1926   \n",
       "\n",
       "         收盘价      成交量(手)      成交额(千元)  ...  市盈率(动态)     市净率     市销率  市销率(TTM)  \\\n",
       "0  4832.2947  1012130.40  3342373.870  ...      NaN  2.2000  1.2362    1.0649   \n",
       "1  4756.6046   805536.29  2584309.903  ...    14.89  2.1655  1.2169    1.0482   \n",
       "2  4676.4621   876840.58  2761448.649  ...    14.64  2.1290  1.1964    1.0306   \n",
       "3  4713.5651   577933.43  1827510.871  ...    14.76  2.1459  1.2058    1.0387   \n",
       "4  4701.6922   529996.84  1667143.803  ...    14.72  2.1405  1.2028    1.0361   \n",
       "\n",
       "   股息率(%)  股息率(TTM)(%)       总股本(万股)     流通股本(万股)       总市值(万元)      流通市值(万元)  \n",
       "0  3.2098       3.2098  1.130214e+06  971517.0043  3.679978e+07  3.163259e+07  \n",
       "1  3.2608       3.2608  1.130214e+06  971517.0043  3.622337e+07  3.113712e+07  \n",
       "2  3.3167       3.3167  1.130214e+06  971517.0043  3.561305e+07  3.061250e+07  \n",
       "3  3.2906       3.2906  1.130214e+06  971517.0043  3.589561e+07  3.085538e+07  \n",
       "4  3.2989       3.2989  1.130214e+06  971517.0043  3.580519e+07  3.077766e+07  \n",
       "\n",
       "[5 rows x 24 columns]"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_daily0=pd.read_sql(\"select * from stock_daily where 交易日期>'20200101' and 交易日期<'20210101' \",con=conn)\n",
    "stock_daily0.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['index', '交易日期', '股票代码', '股票简称', '开盘价', '最高价', '最低价', '收盘价', '成交量(手)',\n",
       "       '成交额(千元)', '换手率(%)', '量比', '市盈率(静态)', '市盈率(TTM)', '市盈率(动态)', '市净率',\n",
       "       '市销率', '市销率(TTM)', '股息率(%)', '股息率(TTM)(%)', '总股本(万股)', '流通股本(万股)',\n",
       "       '总市值(万元)', '流通市值(万元)'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_daily0.columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### classwork 3\n",
    "\n",
    "* 自行下载数据获取2022年全部股票的数据\n",
    "\n",
    "* 完成如下金融指标概念相关的练习题目:\n",
    "\n",
    "1. 一家公司的年度净利润为1.2亿元,目前股价为25元,流通股数量为5000万股。请根据给定信息,计算该公司的市盈率(静态)。\n",
    "\n",
    "2. 某公司的年化净利润预计为8000万元,预计明年增长10%,后年增长8%。若现金流折现率为12%,可以计算该公司的动态市盈率为多少?假设当前市值12亿元。\n",
    "\n",
    "3. 一家制造企业的年末账面净资产值为25亿元,当前股价为18元,流通股数量为10亿股。请计算该公司的市净率。\n",
    "\n",
    "4. 某零售企业的去年全年销售收入为50亿元,目前市值为120亿元。请计算该公司的市销率。\n",
    "\n",
    "5. 公司A每年派发1元的固定现金股利,当前股价为30元。公司B股利率为3%,当前股价为25元。请分别计算两家公司的股息率。\n",
    "\n",
    "6. 公司X和公司Y营收相同,公司X的市销率为2,公司Y的市销率为1.5。已知公司Y的市值是60亿元,请根据市销率指标估算公司X的市值。\n",
    "\n",
    "7. 某上市银行当前的静态市盈率为15倍，动态市盈率为13倍，其最近一年的每股收益为2元，预计下一年度的每股收益增长率为10%。请根据上述信息，估算未来该银行股票合理价格\n",
    "\n",
    "这些题目涵盖了静态估值、动态估值、相对估值等不同的股票估值方法,并考虑了各种常用的估值指标和公式,是不错的练习。解答时需要熟练运用各项指标的计算公式。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10.416666666666668"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "25/(120000000/50000000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "75765306.12244897"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "80000000*(1+0.1)*(1+0.08)/((1+0.12)*(1+0.12))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "15.838383838383841"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "1200000000/75765306.12244897"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7.2"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "18/(25/10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Fama-French三因子模型\n",
    "\n",
    "Fama-French三因子模型是金融经济学领域中一种重要的资产定价模型，由Eugene Fama和Kenneth French于1992年提出，旨在改进资本资产定价模型（Capital Asset Pricing Model, CAPM），该模型仅依赖单一的市场因子无法完全解释不同股票的风险溢价差异。Fama-French三因子模型引入了两个额外的因子，即市值规模（Size）和账面市值比（Book-to-Market，B/M或HML因子）来更好地描述股票回报率的不同来源。\n",
    "\n",
    "模型的基本原理是：\n",
    "- 市场因子（Market factor）：市场风险溢价也叫市场风险溢酬 (Market Risk Premium)，表现为股票组合与整个市场的关联性，通常用市场组合（如大盘指数）的收益率减去无风险利率来表示。模型假设投资者要为承担整体市场风险获得补偿,即系统性风险。\n",
    "- 小市值效应（Small Minus Big, SMB因子）：小市值公司相对于大市值公司的超额收益，这是由于小市值公司在市场中往往表现出更高的风险和收益。\n",
    "- 价值效应（High Minus Low, HML因子）：账面市值比高的“价值型”股票相对于账面市值比低的“成长型”股票的超额收益，反映出投资者偏好某些时期内对账面价值高但市值相对较低股票的风险补偿。\n",
    "\n",
    "模型的公式可以用 LaTeX 表示为：\n",
    "$$ E(R_i) - R_f = \\alpha_i + \\beta_i (R_m - R_f) + s_i \\cdot SMB + h_i \\cdot HML + \\epsilon_i $$\n",
    "其中，\n",
    "- $ E(R_i) $ 是股票i的预期收益率；\n",
    "- $ R_f $ 是无风险收益率；\n",
    "- $ R_m $ 是市场组合的收益率；\n",
    "- $ \\beta_i $ 是股票i相对于市场组合的系统性风险系数；\n",
    "- $ s_i $ 是股票i在市值规模因子上的暴露度；\n",
    "- $ h_i $ 是股票i在账面市值比因子上的暴露度；\n",
    "- $ SMB $ 和 $ HML $ 分别是小市值和价值因子的预期收益率；\n",
    "- $ \\alpha_i $ 是残差项，代表不可被模型解释的特定股票的超额收益；\n",
    "- $ \\epsilon_i $ 是随机误差项。\n",
    "\n",
    "* 核心思想\n",
    "\n",
    "三因子模型的核心思想是:除了市场整体风险之外,投资者在投资决策中还关注公司规模和公司价值(账面市值比)等因素。具体来说:\n",
    "\n",
    "1. 公司规模效应\n",
    "小型公司股票往往有较高的预期收益,因为它们面临较高的风险和较低的流动性。投资者需要获得额外的风险补偿,才愿意持有这些股票。\n",
    "\n",
    "2. 公司价值效应  \n",
    "高账面市值比(价值股)股票的预期收益率较高,这可能是由于:\n",
    "(1) 这些公司可能被低估了; \n",
    "(2) 价值股面临较高的财务困难风险;\n",
    "(3) 投资者对成长型股票过于乐观。\n",
    "\n",
    "3. 综合多因素定价\n",
    "三因子模型将预期收益率分解为三个风险来源: 市场风险溢酬、公司规模风险溢酬和公司价值风险溢酬。相比CAPM单一的市场beta,它为定价引入了更多的解释变量。\n",
    "\n",
    "4. 实证证据\n",
    "该模型在实证研究中表现出了较好的解释力,能更准确捕捉不同股票间的收益差异。\n",
    "\n",
    "* 局限性:\n",
    "\n",
    "1. 缺乏足够的理论基础支撑\n",
    "该模型发现的规模效应和价值效应缺乏令人信服的理论解释,更多是基于实证发现。\n",
    "\n",
    "2. 模型参数不稳定\n",
    "规模和价值两个因子的风险补偿在不同时期和市场表现不一致,缺乏稳健性。\n",
    "\n",
    "3. 忽视了其他可能的风险因子\n",
    "可能还存在其他影响股票收益率的系统风险因子,如盈利质量、投资强度等,该模型没有纳入考虑。\n",
    "\n",
    "4. 数据挖掘偏误\n",
    "由于大量的数据分析检验,可能存在\"数据挖掘\"的问题,发现的效应并非真实存在。\n",
    "\n",
    "5. 缺乏足够的经济解释\n",
    "即使在控制其他变量后,规模和价值效应仍然存在,其背后的经济学根源仍不清晰。\n",
    "\n",
    "总的来说,Fama-French三因子模型拓展了CAPM单一市场风险的视角,为资产定价提供了更精细化的工具。但它也面临一些理论和实证上的批评和挑战。未来还需要进一步完善这一资产定价理论框架。\n",
    "该模型主要用于资产定价、投资组合优化、风险管理以及基金业绩评价等方面，尤其在解释和预测股票超额收益方面，提供了更全面的视角。后续研究中，Fama和French还进一步发展了五因子模型和其他扩展版本，以适应更多样化的市场环境和投资策略需求。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>交易日期</th>\n",
       "      <th>股票代码</th>\n",
       "      <th>股票简称</th>\n",
       "      <th>开盘价</th>\n",
       "      <th>最高价</th>\n",
       "      <th>最低价</th>\n",
       "      <th>收盘价</th>\n",
       "      <th>成交量(手)</th>\n",
       "      <th>成交额(千元)</th>\n",
       "      <th>...</th>\n",
       "      <th>市盈率(动态)</th>\n",
       "      <th>市净率</th>\n",
       "      <th>市销率</th>\n",
       "      <th>市销率(TTM)</th>\n",
       "      <th>股息率(%)</th>\n",
       "      <th>股息率(TTM)(%)</th>\n",
       "      <th>总股本(万股)</th>\n",
       "      <th>流通股本(万股)</th>\n",
       "      <th>总市值(万元)</th>\n",
       "      <th>流通市值(万元)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6807</td>\n",
       "      <td>20200102</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>万科A</td>\n",
       "      <td>4867.9136</td>\n",
       "      <td>4986.6432</td>\n",
       "      <td>4824.8741</td>\n",
       "      <td>4832.2947</td>\n",
       "      <td>1012130.40</td>\n",
       "      <td>3342373.870</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.2000</td>\n",
       "      <td>1.2362</td>\n",
       "      <td>1.0649</td>\n",
       "      <td>3.2098</td>\n",
       "      <td>3.2098</td>\n",
       "      <td>1.130214e+06</td>\n",
       "      <td>971517.0043</td>\n",
       "      <td>3.679978e+07</td>\n",
       "      <td>3.163259e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>6808</td>\n",
       "      <td>20200103</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>万科A</td>\n",
       "      <td>4854.5565</td>\n",
       "      <td>4869.3977</td>\n",
       "      <td>4716.5334</td>\n",
       "      <td>4756.6046</td>\n",
       "      <td>805536.29</td>\n",
       "      <td>2584309.903</td>\n",
       "      <td>...</td>\n",
       "      <td>14.89</td>\n",
       "      <td>2.1655</td>\n",
       "      <td>1.2169</td>\n",
       "      <td>1.0482</td>\n",
       "      <td>3.2608</td>\n",
       "      <td>3.2608</td>\n",
       "      <td>1.130214e+06</td>\n",
       "      <td>971517.0043</td>\n",
       "      <td>3.622337e+07</td>\n",
       "      <td>3.113712e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>6809</td>\n",
       "      <td>20200106</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>万科A</td>\n",
       "      <td>4712.0810</td>\n",
       "      <td>4713.5651</td>\n",
       "      <td>4637.8750</td>\n",
       "      <td>4676.4621</td>\n",
       "      <td>876840.58</td>\n",
       "      <td>2761448.649</td>\n",
       "      <td>...</td>\n",
       "      <td>14.64</td>\n",
       "      <td>2.1290</td>\n",
       "      <td>1.1964</td>\n",
       "      <td>1.0306</td>\n",
       "      <td>3.3167</td>\n",
       "      <td>3.3167</td>\n",
       "      <td>1.130214e+06</td>\n",
       "      <td>971517.0043</td>\n",
       "      <td>3.561305e+07</td>\n",
       "      <td>3.061250e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>6810</td>\n",
       "      <td>20200107</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>万科A</td>\n",
       "      <td>4691.3033</td>\n",
       "      <td>4738.7952</td>\n",
       "      <td>4652.7162</td>\n",
       "      <td>4713.5651</td>\n",
       "      <td>577933.43</td>\n",
       "      <td>1827510.871</td>\n",
       "      <td>...</td>\n",
       "      <td>14.76</td>\n",
       "      <td>2.1459</td>\n",
       "      <td>1.2058</td>\n",
       "      <td>1.0387</td>\n",
       "      <td>3.2906</td>\n",
       "      <td>3.2906</td>\n",
       "      <td>1.130214e+06</td>\n",
       "      <td>971517.0043</td>\n",
       "      <td>3.589561e+07</td>\n",
       "      <td>3.085538e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6811</td>\n",
       "      <td>20200108</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>万科A</td>\n",
       "      <td>4645.2956</td>\n",
       "      <td>4715.0492</td>\n",
       "      <td>4608.1926</td>\n",
       "      <td>4701.6922</td>\n",
       "      <td>529996.84</td>\n",
       "      <td>1667143.803</td>\n",
       "      <td>...</td>\n",
       "      <td>14.72</td>\n",
       "      <td>2.1405</td>\n",
       "      <td>1.2028</td>\n",
       "      <td>1.0361</td>\n",
       "      <td>3.2989</td>\n",
       "      <td>3.2989</td>\n",
       "      <td>1.130214e+06</td>\n",
       "      <td>971517.0043</td>\n",
       "      <td>3.580519e+07</td>\n",
       "      <td>3.077766e+07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 24 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   index      交易日期       股票代码 股票简称        开盘价        最高价        最低价  \\\n",
       "0   6807  20200102  000002.SZ  万科A  4867.9136  4986.6432  4824.8741   \n",
       "1   6808  20200103  000002.SZ  万科A  4854.5565  4869.3977  4716.5334   \n",
       "2   6809  20200106  000002.SZ  万科A  4712.0810  4713.5651  4637.8750   \n",
       "3   6810  20200107  000002.SZ  万科A  4691.3033  4738.7952  4652.7162   \n",
       "4   6811  20200108  000002.SZ  万科A  4645.2956  4715.0492  4608.1926   \n",
       "\n",
       "         收盘价      成交量(手)      成交额(千元)  ...  市盈率(动态)     市净率     市销率  市销率(TTM)  \\\n",
       "0  4832.2947  1012130.40  3342373.870  ...      NaN  2.2000  1.2362    1.0649   \n",
       "1  4756.6046   805536.29  2584309.903  ...    14.89  2.1655  1.2169    1.0482   \n",
       "2  4676.4621   876840.58  2761448.649  ...    14.64  2.1290  1.1964    1.0306   \n",
       "3  4713.5651   577933.43  1827510.871  ...    14.76  2.1459  1.2058    1.0387   \n",
       "4  4701.6922   529996.84  1667143.803  ...    14.72  2.1405  1.2028    1.0361   \n",
       "\n",
       "   股息率(%)  股息率(TTM)(%)       总股本(万股)     流通股本(万股)       总市值(万元)      流通市值(万元)  \n",
       "0  3.2098       3.2098  1.130214e+06  971517.0043  3.679978e+07  3.163259e+07  \n",
       "1  3.2608       3.2608  1.130214e+06  971517.0043  3.622337e+07  3.113712e+07  \n",
       "2  3.3167       3.3167  1.130214e+06  971517.0043  3.561305e+07  3.061250e+07  \n",
       "3  3.2906       3.2906  1.130214e+06  971517.0043  3.589561e+07  3.085538e+07  \n",
       "4  3.2989       3.2989  1.130214e+06  971517.0043  3.580519e+07  3.077766e+07  \n",
       "\n",
       "[5 rows x 24 columns]"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_daily0=pd.read_sql(\"select * from stock_daily where 交易日期>'20200101' and 交易日期<'20210101' \",con=conn)\n",
    "stock_daily0.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### smb 与 hml 因子的计算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>交易日期</th>\n",
       "      <th>股票代码</th>\n",
       "      <th>股票简称</th>\n",
       "      <th>开盘价</th>\n",
       "      <th>最高价</th>\n",
       "      <th>最低价</th>\n",
       "      <th>收盘价</th>\n",
       "      <th>成交量(手)</th>\n",
       "      <th>成交额(千元)</th>\n",
       "      <th>...</th>\n",
       "      <th>市盈率(动态)</th>\n",
       "      <th>市净率</th>\n",
       "      <th>市销率</th>\n",
       "      <th>市销率(TTM)</th>\n",
       "      <th>股息率(%)</th>\n",
       "      <th>股息率(TTM)(%)</th>\n",
       "      <th>总股本(万股)</th>\n",
       "      <th>流通股本(万股)</th>\n",
       "      <th>总市值(万元)</th>\n",
       "      <th>流通市值(万元)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6807</td>\n",
       "      <td>20200102</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>万科A</td>\n",
       "      <td>4867.9136</td>\n",
       "      <td>4986.6432</td>\n",
       "      <td>4824.8741</td>\n",
       "      <td>4832.2947</td>\n",
       "      <td>1012130.4</td>\n",
       "      <td>3342373.87</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.2</td>\n",
       "      <td>1.2362</td>\n",
       "      <td>1.0649</td>\n",
       "      <td>3.2098</td>\n",
       "      <td>3.2098</td>\n",
       "      <td>1.130214e+06</td>\n",
       "      <td>971517.0043</td>\n",
       "      <td>3.679978e+07</td>\n",
       "      <td>31632593.66</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1 rows × 24 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   index      交易日期       股票代码 股票简称        开盘价        最高价        最低价  \\\n",
       "0   6807  20200102  000002.SZ  万科A  4867.9136  4986.6432  4824.8741   \n",
       "\n",
       "         收盘价     成交量(手)     成交额(千元)  ...  市盈率(动态)  市净率     市销率  市销率(TTM)  \\\n",
       "0  4832.2947  1012130.4  3342373.87  ...      NaN  2.2  1.2362    1.0649   \n",
       "\n",
       "   股息率(%)  股息率(TTM)(%)       总股本(万股)     流通股本(万股)       总市值(万元)     流通市值(万元)  \n",
       "0  3.2098       3.2098  1.130214e+06  971517.0043  3.679978e+07  31632593.66  \n",
       "\n",
       "[1 rows x 24 columns]"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_daily0.head(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "\n",
    "daily=stock_daily0[\"交易日期\"].unique()\n",
    "smb=[]\n",
    "hml=[]\n",
    "test0=stock_daily0[stock_daily0[\"交易日期\"]==daily[0]][[\"股票代码\",\"收盘价\"]].copy()\n",
    "test0.set_index(\"股票代码\",inplace=True)\n",
    "\n",
    "for i in daily[1:]:\n",
    "\n",
    "    #构建各个股票在当天的收益率\n",
    "    test1=stock_daily0[stock_daily0[\"交易日期\"]==i][[\"股票代码\",\"收盘价\"]].copy()\n",
    "    test1.set_index(\"股票代码\",inplace=True)\n",
    "    test=test1/test0-1\n",
    "    test0=test1.copy()\n",
    "\n",
    "    #获取当天的市值表与市净率的倒数表\n",
    "    all_stocks=stock_daily0[stock_daily0[\"交易日期\"]==i][[\"股票代码\",\"市净率\",\"总市值(万元)\"]].copy()\n",
    "    all_stocks.set_index(\"股票代码\",inplace=True)\n",
    "    all_stocks[\"市净率\"]=1/all_stocks[\"市净率\"]\n",
    "\n",
    "    #将市值表与市净率倒数表进行排序，并按照市值与市净率倒数进行分组\n",
    "    all_stocks=all_stocks.sort_values('总市值(万元)')\n",
    "    s=all_stocks.index[:int(len(all_stocks)/2)]\n",
    "    b=all_stocks.index[int(len(all_stocks)/2):]\n",
    "    all_stocks=all_stocks.sort_values('市净率')\n",
    "    l=all_stocks.index[:int(len(all_stocks)*0.3)]\n",
    "    m=all_stocks.index[int(len(all_stocks)*0.3):int(len(all_stocks)*0.7)]\n",
    "    h=all_stocks.index[int(len(all_stocks)*0.7):]\n",
    "    portfolio={}\n",
    "    portfolio['sl']=list(set(s).intersection(set(l)))\n",
    "    portfolio['sm']=list(set(s).intersection(set(m)))\n",
    "    portfolio['sh']=list(set(s).intersection(set(h)))\n",
    "    portfolio['bl']=list(set(b).intersection(set(l)))\n",
    "    portfolio['bm']=list(set(b).intersection(set(m)))\n",
    "    portfolio['bh']=list(set(b).intersection(set(h)))\n",
    "\n",
    "    #计算当日的smb和hml\n",
    "    portfolio_return={}\n",
    "    for s in portfolio:\n",
    "        portfolio_return[s]=0\n",
    "        for h in portfolio[s]:\n",
    "            if (not np.isnan(all_stocks['总市值(万元)'][h])) and (not np.isnan(test[\"收盘价\"][h])): #如果有空值则直接跳过\n",
    "                portfolio_return[s]+=all_stocks['总市值(万元)'][h]*test[\"收盘价\"][h]\n",
    "        portfolio_return[s]=  portfolio_return[s]/np.sum(all_stocks['总市值(万元)'][portfolio[s]])\n",
    "\n",
    "    smb.append((portfolio_return['sl']+portfolio_return['sm']+portfolio_return['sh'])/3-(portfolio_return['bl']+portfolio_return['bm']+portfolio_return['bh'])/3)\n",
    "    hml.append((portfolio_return['sh']+portfolio_return['bh'])/2-(portfolio_return['sl']+portfolio_return['bl'])/2)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [],
   "source": [
    "#hml"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SMB</th>\n",
       "      <th>HML</th>\n",
       "      <th>date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.003815</td>\n",
       "      <td>0.001289</td>\n",
       "      <td>20200103</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.002781</td>\n",
       "      <td>0.000107</td>\n",
       "      <td>20200106</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.000671</td>\n",
       "      <td>-0.002336</td>\n",
       "      <td>20200107</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.000778</td>\n",
       "      <td>-0.003993</td>\n",
       "      <td>20200108</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.001527</td>\n",
       "      <td>-0.010244</td>\n",
       "      <td>20200109</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>237</th>\n",
       "      <td>0.000048</td>\n",
       "      <td>0.003876</td>\n",
       "      <td>20201225</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>238</th>\n",
       "      <td>-0.016993</td>\n",
       "      <td>-0.001402</td>\n",
       "      <td>20201228</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>239</th>\n",
       "      <td>0.004505</td>\n",
       "      <td>0.004464</td>\n",
       "      <td>20201229</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>240</th>\n",
       "      <td>-0.011319</td>\n",
       "      <td>-0.008872</td>\n",
       "      <td>20201230</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>241</th>\n",
       "      <td>-0.003491</td>\n",
       "      <td>-0.008211</td>\n",
       "      <td>20201231</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>242 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          SMB       HML      date\n",
       "0    0.003815  0.001289  20200103\n",
       "1    0.002781  0.000107  20200106\n",
       "2    0.000671 -0.002336  20200107\n",
       "3   -0.000778 -0.003993  20200108\n",
       "4    0.001527 -0.010244  20200109\n",
       "..        ...       ...       ...\n",
       "237  0.000048  0.003876  20201225\n",
       "238 -0.016993 -0.001402  20201228\n",
       "239  0.004505  0.004464  20201229\n",
       "240 -0.011319 -0.008872  20201230\n",
       "241 -0.003491 -0.008211  20201231\n",
       "\n",
       "[242 rows x 3 columns]"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factors=pd.DataFrame({'SMB':smb,'HML':hml,\"date\":daily[1:]})\n",
    "factors"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 模型的时间序列回归分析\n",
    "\n",
    "Fama-French三因子模型不同于经典的多因子模型，没有采用横截面回归，而是进行时间序列的回归。其中 HML 和 SMB 是通过 BP 和市值将股票排序然后做多一部分并同时做空一部分来构建的投资组合。以 HML 为例，它代表着 high book-to-market ratio 公司相对于 low book-to-market ratio 公司的超额收益。该因子叫做 HML 因子而非 BP 因子，其意义也是强调因子本身是一个投资组合的收益率，而非 BP。Fama 和 French 用这三个投资组合的收益率来解释个股或者其他投资组合在截面上的收益率。\n",
    "\n",
    "个人理解时间序列回归和经典多因子模型的本质差别就是FAMA三因子模型为时间序列上的回归，经典多因子模型研究的核心是各股的超额收益在横截面上存在的差异，所以多因子模型反映的是收益率均值和因子暴露在截面上的关系，其回归是以最小化各股的定价错误值的平方为目标，但时间序列回归则不是。\n",
    "\n",
    "### classwork 3\n",
    "\n",
    "1. 计算股票000002.SZ的收益率\n",
    "\n",
    "2. 获得同期上证指数的收盘价，然后计算收益率\n",
    "\n",
    "3. 合并因子与收益率以及上证指数收益率\n",
    "\n",
    "4. 作图展现因子与股票收益率的关系\n",
    "\n",
    "5. 做股票000002.SZ的三因子模型的时间序列回归，求出其各个因子暴露度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [],
   "source": [
    "p_wk=stock_daily0[stock_daily0[\"股票代码\"]==\"000002.SZ\"][[\"交易日期\",\"收盘价\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "p_wk.set_index(\"交易日期\",inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>收盘价</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>交易日期</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>20200102</th>\n",
       "      <td>4832.2947</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20200103</th>\n",
       "      <td>4756.6046</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20200106</th>\n",
       "      <td>4676.4621</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20200107</th>\n",
       "      <td>4713.5651</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20200108</th>\n",
       "      <td>4701.6922</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20201225</th>\n",
       "      <td>4324.6181</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20201228</th>\n",
       "      <td>4373.8664</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20201229</th>\n",
       "      <td>4389.2565</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20201230</th>\n",
       "      <td>4367.7104</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20201231</th>\n",
       "      <td>4416.9587</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>243 rows × 1 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                收盘价\n",
       "交易日期               \n",
       "20200102  4832.2947\n",
       "20200103  4756.6046\n",
       "20200106  4676.4621\n",
       "20200107  4713.5651\n",
       "20200108  4701.6922\n",
       "...             ...\n",
       "20201225  4324.6181\n",
       "20201228  4373.8664\n",
       "20201229  4389.2565\n",
       "20201230  4367.7104\n",
       "20201231  4416.9587\n",
       "\n",
       "[243 rows x 1 columns]"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "p_wk"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [],
   "source": [
    "import datetime"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [],
   "source": [
    "p_wk[\"index\"]=stock_index_daily[(stock_index_daily[\"date\"]>=datetime.date(2020,1,2))&(stock_index_daily[\"date\"]<=datetime.date(2020,12,31))][\"close\"].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0001234567901234568"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "0.03/243"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_x=(p_wk/p_wk.shift(1)-1).dropna()-0.0001234567901234568"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [],
   "source": [
    "#daily[1:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_x[\"smb\"]=smb\n",
    "y_x[\"hml\"]=hml"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x22e3afff3a0>]"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(y_x[\"hml\"],y_x[\"收盘价\"],\"o\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>收盘价</th>\n",
       "      <th>index</th>\n",
       "      <th>smb</th>\n",
       "      <th>hml</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>交易日期</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>20200103</th>\n",
       "      <td>-0.015787</td>\n",
       "      <td>-0.000581</td>\n",
       "      <td>0.003815</td>\n",
       "      <td>0.001289</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20200106</th>\n",
       "      <td>-0.016972</td>\n",
       "      <td>-0.000246</td>\n",
       "      <td>0.002781</td>\n",
       "      <td>0.000107</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20200107</th>\n",
       "      <td>0.007811</td>\n",
       "      <td>0.006815</td>\n",
       "      <td>0.000671</td>\n",
       "      <td>-0.002336</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20200108</th>\n",
       "      <td>-0.002642</td>\n",
       "      <td>-0.012333</td>\n",
       "      <td>-0.000778</td>\n",
       "      <td>-0.003993</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20200109</th>\n",
       "      <td>0.016291</td>\n",
       "      <td>0.009003</td>\n",
       "      <td>0.001527</td>\n",
       "      <td>-0.010244</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20201225</th>\n",
       "      <td>0.005603</td>\n",
       "      <td>0.009823</td>\n",
       "      <td>0.000048</td>\n",
       "      <td>0.003876</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20201228</th>\n",
       "      <td>0.011264</td>\n",
       "      <td>0.000089</td>\n",
       "      <td>-0.016993</td>\n",
       "      <td>-0.001402</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20201229</th>\n",
       "      <td>0.003395</td>\n",
       "      <td>-0.005495</td>\n",
       "      <td>0.004505</td>\n",
       "      <td>0.004464</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20201230</th>\n",
       "      <td>-0.005032</td>\n",
       "      <td>0.010358</td>\n",
       "      <td>-0.011319</td>\n",
       "      <td>-0.008872</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20201231</th>\n",
       "      <td>0.011152</td>\n",
       "      <td>0.017044</td>\n",
       "      <td>-0.003491</td>\n",
       "      <td>-0.008211</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>242 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "               收盘价     index       smb       hml\n",
       "交易日期                                            \n",
       "20200103 -0.015787 -0.000581  0.003815  0.001289\n",
       "20200106 -0.016972 -0.000246  0.002781  0.000107\n",
       "20200107  0.007811  0.006815  0.000671 -0.002336\n",
       "20200108 -0.002642 -0.012333 -0.000778 -0.003993\n",
       "20200109  0.016291  0.009003  0.001527 -0.010244\n",
       "...            ...       ...       ...       ...\n",
       "20201225  0.005603  0.009823  0.000048  0.003876\n",
       "20201228  0.011264  0.000089 -0.016993 -0.001402\n",
       "20201229  0.003395 -0.005495  0.004505  0.004464\n",
       "20201230 -0.005032  0.010358 -0.011319 -0.008872\n",
       "20201231  0.011152  0.017044 -0.003491 -0.008211\n",
       "\n",
       "[242 rows x 4 columns]"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                    收盘价   R-squared:                       0.517\n",
      "Model:                            OLS   Adj. R-squared:                  0.511\n",
      "Method:                 Least Squares   F-statistic:                     84.93\n",
      "Date:                Fri, 29 Mar 2024   Prob (F-statistic):           2.17e-37\n",
      "Time:                        15:48:38   Log-Likelihood:                 696.64\n",
      "No. Observations:                 242   AIC:                            -1385.\n",
      "Df Residuals:                     238   BIC:                            -1371.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.0012      0.001      1.249      0.213      -0.001       0.003\n",
      "index          0.8873      0.068     12.974      0.000       0.753       1.022\n",
      "smb           -0.5537      0.125     -4.445      0.000      -0.799      -0.308\n",
      "hml            0.9335      0.110      8.513      0.000       0.717       1.150\n",
      "==============================================================================\n",
      "Omnibus:                       26.580   Durbin-Watson:                   1.906\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):               34.655\n",
      "Skew:                           0.745   Prob(JB):                     2.98e-08\n",
      "Kurtosis:                       4.104   Cond. No.                         146.\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "model=sm.OLS(y_x[\"收盘价\"],sm.add_constant(y_x[[\"index\",\"smb\",\"hml\"]])).fit()\n",
    "print(model.summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1990-12-19</td>\n",
       "      <td>96.050</td>\n",
       "      <td>99.980</td>\n",
       "      <td>95.790</td>\n",
       "      <td>99.980</td>\n",
       "      <td>126000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1990-12-20</td>\n",
       "      <td>104.300</td>\n",
       "      <td>104.390</td>\n",
       "      <td>99.980</td>\n",
       "      <td>104.390</td>\n",
       "      <td>19700</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1990-12-21</td>\n",
       "      <td>109.070</td>\n",
       "      <td>109.130</td>\n",
       "      <td>103.730</td>\n",
       "      <td>109.130</td>\n",
       "      <td>2800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1990-12-24</td>\n",
       "      <td>113.570</td>\n",
       "      <td>114.550</td>\n",
       "      <td>109.130</td>\n",
       "      <td>114.550</td>\n",
       "      <td>3200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1990-12-25</td>\n",
       "      <td>120.090</td>\n",
       "      <td>120.250</td>\n",
       "      <td>114.550</td>\n",
       "      <td>120.250</td>\n",
       "      <td>1500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8122</th>\n",
       "      <td>2024-03-22</td>\n",
       "      <td>3070.548</td>\n",
       "      <td>3073.206</td>\n",
       "      <td>3027.762</td>\n",
       "      <td>3048.034</td>\n",
       "      <td>39474048600</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8123</th>\n",
       "      <td>2024-03-25</td>\n",
       "      <td>3040.501</td>\n",
       "      <td>3065.261</td>\n",
       "      <td>3026.306</td>\n",
       "      <td>3026.306</td>\n",
       "      <td>38748538900</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8124</th>\n",
       "      <td>2024-03-26</td>\n",
       "      <td>3026.922</td>\n",
       "      <td>3036.494</td>\n",
       "      <td>3006.260</td>\n",
       "      <td>3031.481</td>\n",
       "      <td>34592878700</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8125</th>\n",
       "      <td>2024-03-27</td>\n",
       "      <td>3026.814</td>\n",
       "      <td>3030.450</td>\n",
       "      <td>2993.139</td>\n",
       "      <td>2993.139</td>\n",
       "      <td>34319801000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8126</th>\n",
       "      <td>2024-03-28</td>\n",
       "      <td>2988.590</td>\n",
       "      <td>3033.367</td>\n",
       "      <td>2984.120</td>\n",
       "      <td>3010.664</td>\n",
       "      <td>35320002600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>8127 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            date      open      high       low     close       volume\n",
       "0     1990-12-19    96.050    99.980    95.790    99.980       126000\n",
       "1     1990-12-20   104.300   104.390    99.980   104.390        19700\n",
       "2     1990-12-21   109.070   109.130   103.730   109.130         2800\n",
       "3     1990-12-24   113.570   114.550   109.130   114.550         3200\n",
       "4     1990-12-25   120.090   120.250   114.550   120.250         1500\n",
       "...          ...       ...       ...       ...       ...          ...\n",
       "8122  2024-03-22  3070.548  3073.206  3027.762  3048.034  39474048600\n",
       "8123  2024-03-25  3040.501  3065.261  3026.306  3026.306  38748538900\n",
       "8124  2024-03-26  3026.922  3036.494  3006.260  3031.481  34592878700\n",
       "8125  2024-03-27  3026.814  3030.450  2993.139  2993.139  34319801000\n",
       "8126  2024-03-28  2988.590  3033.367  2984.120  3010.664  35320002600\n",
       "\n",
       "[8127 rows x 6 columns]"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_index_daily = ak.stock_zh_index_daily(symbol=\"sh000001\")\n",
    "stock_index_daily"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SMB</th>\n",
       "      <th>HML</th>\n",
       "      <th>date</th>\n",
       "      <th>stock</th>\n",
       "      <th>shang_index</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.003815</td>\n",
       "      <td>0.001289</td>\n",
       "      <td>20200103</td>\n",
       "      <td>-0.015663</td>\n",
       "      <td>-0.000458</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.002781</td>\n",
       "      <td>0.000107</td>\n",
       "      <td>20200106</td>\n",
       "      <td>-0.016849</td>\n",
       "      <td>-0.000123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.000671</td>\n",
       "      <td>-0.002336</td>\n",
       "      <td>20200107</td>\n",
       "      <td>0.007934</td>\n",
       "      <td>0.006938</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.000778</td>\n",
       "      <td>-0.003993</td>\n",
       "      <td>20200108</td>\n",
       "      <td>-0.002519</td>\n",
       "      <td>-0.012210</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.001527</td>\n",
       "      <td>-0.010244</td>\n",
       "      <td>20200109</td>\n",
       "      <td>0.016414</td>\n",
       "      <td>0.009126</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>237</th>\n",
       "      <td>0.000048</td>\n",
       "      <td>0.003876</td>\n",
       "      <td>20201225</td>\n",
       "      <td>0.005727</td>\n",
       "      <td>0.009946</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>238</th>\n",
       "      <td>-0.016993</td>\n",
       "      <td>-0.001402</td>\n",
       "      <td>20201228</td>\n",
       "      <td>0.011388</td>\n",
       "      <td>0.000213</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>239</th>\n",
       "      <td>0.004505</td>\n",
       "      <td>0.004464</td>\n",
       "      <td>20201229</td>\n",
       "      <td>0.003519</td>\n",
       "      <td>-0.005372</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>240</th>\n",
       "      <td>-0.011319</td>\n",
       "      <td>-0.008872</td>\n",
       "      <td>20201230</td>\n",
       "      <td>-0.004909</td>\n",
       "      <td>0.010481</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>241</th>\n",
       "      <td>-0.003491</td>\n",
       "      <td>-0.008211</td>\n",
       "      <td>20201231</td>\n",
       "      <td>0.011276</td>\n",
       "      <td>0.017167</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>242 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          SMB       HML      date     stock  shang_index\n",
       "0    0.003815  0.001289  20200103 -0.015663    -0.000458\n",
       "1    0.002781  0.000107  20200106 -0.016849    -0.000123\n",
       "2    0.000671 -0.002336  20200107  0.007934     0.006938\n",
       "3   -0.000778 -0.003993  20200108 -0.002519    -0.012210\n",
       "4    0.001527 -0.010244  20200109  0.016414     0.009126\n",
       "..        ...       ...       ...       ...          ...\n",
       "237  0.000048  0.003876  20201225  0.005727     0.009946\n",
       "238 -0.016993 -0.001402  20201228  0.011388     0.000213\n",
       "239  0.004505  0.004464  20201229  0.003519    -0.005372\n",
       "240 -0.011319 -0.008872  20201230 -0.004909     0.010481\n",
       "241 -0.003491 -0.008211  20201231  0.011276     0.017167\n",
       "\n",
       "[242 rows x 5 columns]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factors"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x27e42239750>]"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.517\n",
      "Model:                            OLS   Adj. R-squared:                  0.511\n",
      "Method:                 Least Squares   F-statistic:                     84.93\n",
      "Date:                Thu, 21 Mar 2024   Prob (F-statistic):           2.17e-37\n",
      "Time:                        20:45:49   Log-Likelihood:                 696.64\n",
      "No. Observations:                 242   AIC:                            -1385.\n",
      "Df Residuals:                     238   BIC:                            -1371.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "===============================================================================\n",
      "                  coef    std err          t      P>|t|      [0.025      0.975]\n",
      "-------------------------------------------------------------------------------\n",
      "const           0.0012      0.001      1.264      0.207      -0.001       0.003\n",
      "shang_index     0.8873      0.068     12.974      0.000       0.753       1.022\n",
      "SMB            -0.5537      0.125     -4.445      0.000      -0.799      -0.308\n",
      "HML             0.9335      0.110      8.513      0.000       0.717       1.150\n",
      "==============================================================================\n",
      "Omnibus:                       26.580   Durbin-Watson:                   1.906\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):               34.655\n",
      "Skew:                           0.745   Prob(JB):                     2.98e-08\n",
      "Kurtosis:                       4.104   Cond. No.                         146.\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "est=sm.OLS(y,x).fit()\n",
    "print(est.summary())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Fama-French三因子模型在资产定价方面的主要应用如下:\n",
    "\n",
    "1. 估计资产的预期收益率\n",
    "\n",
    "根据三因子模型,一只股票/投资组合的预期收益率可以表示为:\n",
    "\n",
    "\\begin{equation}\n",
    "E(R_i) = R_f + \\beta_i E(R_m - R_f) + s_i E(SMB) + h_i E(HML)\n",
    "\\end{equation}\n",
    "\n",
    "其中, $E(R_m - R_f)$、$E(SMB)$和$E(HML)$分别是市场风险溢酬、公司规模溢酬和账面市值比溢酬的预期值,可以通过历史数据估计得到。将估计的风险因子暴露程度($\\beta_i$、$s_i$、$h_i$)代入上式,即可计算出资产的预期收益率$E(R_i)$。\n",
    "\n",
    "2. 计算资产的成本资本\n",
    "\n",
    "成本资本反映了投资者对某资产所要求的预期回报率。三因子模型为计算成本资本提供了新方法:\n",
    "\n",
    "\\begin{equation}\n",
    "R_i = R_f + \\beta_i (R_m - R_f) + s_i (SMB) + h_i (HML)\n",
    "\\end{equation}\n",
    "\n",
    "其中,$R_i$即为该资产的成本资本。可通过估计风险因子暴露系数,代入预期的风险溢酬,得到资产的成本资本。\n",
    "\n",
    "3. 资产定价和投资策略\n",
    "\n",
    "三因子模型为资产定价提供了新的视角,即除了市场风险外,投资者还关注公司规模和账面市值比等因素。投资者可根据模型估计不同资产的预期收益率,发现被低估的资产,制定相应投资策略,期望获得超额收益。\n",
    "\n",
    "4. 绩效评估\n",
    "\n",
    "三因子模型可用于评估基金经理或投资组合的选股能力。在模型中,$\\alpha_i$项反映了非系统性的超额收益,如果$\\alpha_i$显著为正,则表明基金经理具有良好的选股能力。\n",
    "\n",
    "总的来说,Fama-French三因子模型为资产定价提供了一个新的理论框架,使定价更加精确,同时也为投资决策和绩效评估提供了有力工具。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### classwork 4\n",
    "\n",
    "假设某投资基金经理希望根据Fama-French三因子模型,构建一个投资组合,以期获得较高的风险调整后收益。该经理估计了无风险利率为2%,市场风险溢酬为6%,公司规模风险溢酬为3%,账面市值比风险溢酬为4%。\n",
    "\n",
    "经理从股票池中精选了三只股票A、B、C,估计了它们对三个风险因子的暴露程度(根据过去数据回归得到),结果如下:\n",
    "\n",
    "股票 | 市场β | 规模因子暴露 | 账面市值比因子暴露\n",
    "--- | --- | --- | ---\n",
    "A | 1.1 | 0.3 | 1.2\n",
    "B | 0.9 | 0.8 | 0.6  \n",
    "C | 1.2 | 0.2 | 0.9\n",
    "\n",
    "应用Fama-French三因子模型公式,我们可以计算出每只股票的预期收益率？\n",
    "\n",
    "\n",
    "基于这些预期收益率计算结果,该基金经理可以:\n",
    "\n",
    "1. 构建满足约束条件(如总风险、行业分布等)的最优化投资组合,使其权重组合的预期收益最大化。\n",
    "\n",
    "2. 将股票的预期收益率与其当前价格相比较,发现被低估的投资机会,作为选股参考。\n",
    "\n",
    "3. 定期重新估计各股票的风险因子暴露度,动态调整投资组合,以确保风险收益匹配。\n",
    "\n",
    "4. 将实际投资组合收益与基于三因子模型计算的理论预期收益进行比较,评估超额收益的来源和经理的选股能力。\n",
    "\n",
    "通过这种方式,基金经理可以利用Fama-French三因子模型这一资产定价理论框架,结合实际数据估计和优化,来指导投资组合的构建、调整和绩效评估,以实现风险收益最大化。\n",
    "\n",
    "这个例子展示了基于三因子模型,资产定价理论可以为实际的投资管理和量化投资策略的开发提供重要的理论基础和操作框架。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## CAPM和Fama-French三因子模型的应用价值\n",
    "\n",
    "严格来说,CAPM和Fama-French三因子模型都不能被直接用于量化选股,但它们为量化选股提供了重要的理论基础和分析框架。具体来说:\n",
    "\n",
    "1. CAPM框架下的量化选股\n",
    "\n",
    "CAPM模型本身无法直接用于选股,但通过估计个股的β值,我们可以计算其理论预期收益率,并与实际收益率进行比较,从而识别被低估或高估的股票。具体做法是:\n",
    "\n",
    "(1) 估计个股β值\n",
    "\n",
    "(2) 根据CAPM公式计算理论预期收益率\n",
    "\n",
    "(3) 将理论值与实际收益率比较,Stock Picking Score = 实际收益率 - 理论收益率\n",
    "\n",
    "(4) 正值表示股票被低估,负值表示被高估\n",
    "\n",
    "此外,还可结合CAPM模型计算的成本资本率等指标,对股票估值水平进行评判。\n",
    "\n",
    "2. Fama-French三因子框架下的量化选股\n",
    "\n",
    "与CAPM类似,三因子模型无法直接用于选股,但可以提供一些量化选股思路:\n",
    "\n",
    "(1) 估计个股对三个风险因子的暴露程度(β,s,h)\n",
    "\n",
    "(2) 计算股票的理论预期收益率\n",
    "\n",
    "(3) 将理论值与实际收益率比较,判断是否被低估\n",
    "\n",
    "(4) 构建满足特定风险因子暴露(如小市值、高账面价值比)的投资组合\n",
    "\n",
    "此外,三因子模型暗示,可以关注公司规模、价值等特征指标,并据此构建量化选股策略。\n",
    "\n",
    "需要说明的是,虽然上述方法为量化选股提供了分析框架,但在实际操作中还需要:\n",
    "\n",
    "1) 权衡估计误差和交易成本的影响\n",
    "2) 结合其他量化选股因子和技术指标 \n",
    "3) 动态调整模型参数和投资组合\n",
    "\n",
    "总的来说,CAPM和三因子模型本身更多是资产定价的理论基础,不能直接运用于量化选股,但它们的基本思路和分析框架为量化选股提供了有价值的理论指导。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "参考链接：\n",
    "\n",
    "https://zhuanlan.zhihu.com/p/366322544\n",
    "\n",
    "https://gitcode.csdn.net/65e935891a836825ed78d50c.html\n",
    "\n",
    "https://zhuanlan.zhihu.com/p/595864393?utm_id=0\n",
    "\n",
    "https://zhuanlan.zhihu.com/p/442626024\n",
    "\n",
    "https://blog.csdn.net/weixin_44607126/article/details/108275686\n",
    "\n",
    "https://cloud.tencent.com/developer/article/1084689"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "245.76px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
